当前位置: 首页 > news >正文

网站建设与维护考题电子商务是干什么的就业方向

网站建设与维护考题,电子商务是干什么的就业方向,如何建立商城网站,房产网签合同枚举应该都有用过,枚举主要的作用是为了方便用户查找和引用枚举。 案例一 下面的枚举逻辑很简单,就是通过枚举值返回不同的结果。 public enum OperationEnum {EQUAL_TO,CONTAINS,START_WITH,END_WITH;public String getOperationValue(String value)…

枚举应该都有用过,枚举主要的作用是为了方便用户查找和引用枚举。

案例一

下面的枚举逻辑很简单,就是通过枚举值返回不同的结果。

public enum OperationEnum {EQUAL_TO,CONTAINS,START_WITH,END_WITH;public String getOperationValue(String value) {if (this == EQUAL_TO) {return "'" + value + "'";} else if (this == START_WITH) {return "/" + value + ".*/";} else if (this == END_WITH) {return "/" + value + ".*/";} else {return "/.*" + value + ".*/";}}
}

学了《设计模式》之后,我们很容易看出这段代码的问题。
代码中getOperationValue里使用if...else...的结构,导致枚举值之间存在耦合关系。
举个例子来说,当我们要增加新的枚举值时需要修改这段if...else...代码。
那么明显它没有符合低耦合 高内聚的设计理念。

我们也都知道,抽象比具体 更稳定
那为了避免使用if...else...结构,我们将getOperationValue定义为抽象方法,如下

通过重载抽象方法进行解耦

enum OperationEnum {EQUAL_TO {@Overridepublic String getOperationValue(String value) {return "'" + value + "'";}},CONTAINS {@Overridepublic String getOperationValue(String value) {return "/.*" + value + ".*/";}},START_WITH {@Overridepublic String getOperationValue(String value) {return "/" + value + ".*/";}},END_WITH {@Overridepublic String getOperationValue(String value) {return "/.*" + value + "/";}};/*** 定义抽象方法*/public abstract String getOperationValue(String value);
}

我们对比前后的代码,很明显,新增枚举时,带抽象方法重载的方式影响更小。

是否觉得上述代码已经足够好了?

利用接口的方式实现枚举

import java.util.function.Function;public enum OperationEnum {EQUAL_TO((value) -> "'" + value + "'"),CONTAINS((value) -> "/.*" + value + ".*/"),START_WITH((value) -> "/" + value + ".*/"),END_WITH((value) -> "/.*" + value + "/");private final Function<String, String> function;OperationEnum(Function<String, String> function) {this.function = function;}public String getOperationValue(String value) {return function.apply(value);}
}

如果逻辑足够简单,从代码来说这种代码更简洁明了。
如果逻辑比较复杂,可以将lambda表达式用接口实现类代替,然后构造的时候传入对应的接口实现

http://www.dtcms.com/a/497684.html

相关文章:

  • 网站快排是怎么做的怎样在工商网站做遗失
  • 如何手机做网站一个公司备案多个网站要注意
  • 手机网站建设市场在学做网站还不知道买什么好
  • 如何免费制作一个网页seo的基本内容
  • 建设020网站需要多少钱什么是成品网站
  • 国土资源和建设部网站中山免费企业网站建设
  • 白城学做网站优化设计全部答案
  • 在百度上做公司做网站怎么样通过做网站赚钱吗
  • 广东建设网 四川是什么网站体育器材网站建设方案
  • wordpress查看自己网站的ip量如何说明学校网站建设情况
  • 做网站流量要钱吗wordpress 代理服务器
  • 建设信用卡官方网站站长之家查询网站
  • 做网站一个月可以赚多少钱合肥金融直播室网站建设
  • 昆明网站建站网站的seo优化怎么做
  • 东莞做营销网站建设计算机网站建设实验总结
  • 网站建设教程浩森宇特网页设计网站制作流程
  • 北辰网站建设无锡建设网站
  • 福州做网站建设公司建设防伪网站
  • 外贸网站建设公司seo网站推广建站服务商
  • 网站建设经费的函西宁做网站_君博示范
  • 如何在网站建设远程教育本人有大批量手工活寻加工户
  • 免费制作二维码的网站传统企业营销型网站建设
  • 昆山做网站多少钱如何制作微信网站
  • 上海企业网站seo多少钱做问卷给钱的网站
  • 外贸网站制作策划qq个人中心网页版
  • 网络彩票网站开发建站服务器多少钱
  • 做网站需要画原型图么十堰网站制作公司
  • 网站制作应该选什么能打开的a站
  • 网站也会过期吗玉林市住房和城乡建设厅网站
  • 宁波建站模板厂家深圳网络营销公司有哪些