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

做神马网站优化排名深圳seo排名

做神马网站优化排名,深圳seo排名,centeros7 安装wordpress,做网站需要哪些条件枚举应该都有用过,枚举主要的作用是为了方便用户查找和引用枚举。 案例一 下面的枚举逻辑很简单,就是通过枚举值返回不同的结果。 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/wzjs/440938.html

相关文章:

  • 公司就我一个设计热狗seo顾问
  • 阿里云做网站经费故事式软文广告300字
  • 长沙网站建设工作室搜索引擎关键词优化技巧
  • 网站 建设 标准方案seo策略工具
  • qq 网站在线客服网络推广电话销售技巧和话术
  • 建设信用交通网站 省百度问答seo
  • 百度收录网站链接百度app客服人工电话
  • 网站手机客户端在线制作拉新人拿奖励的app
  • 广西做网站公司有哪些武汉seo和网络推广
  • 教育网站全网营销培训
  • 专注高密做网站的百度快照关键词推广
  • 学网站开发看什么书seo点击排名
  • win 2012网站建设百度快速收录入口
  • 景德镇网站开发广告投放推广平台
  • 信誉好的网站建设新闻热点事件
  • 备案网站打不开网站建设一条龙
  • IT做网站工资怎么样最火的推广平台
  • 如何给一个公司做网站域名被墙查询
  • 做简报的网站专门做网站的公司
  • 做网站容易还是app网站如何做seo排名
  • 响应式布局网站建设全媒体运营师报考官网在哪里
  • 淘宝客网站建设的策略四川seo多少钱
  • 安康市建设局网站网站推广优化方法
  • 天津市住房和城乡建设委员会官网南昌seo
  • 章丘做网站优化seo网站关键词优化价格
  • 新手做网站什么内容比较好b2b关键词排名工具
  • 制作个人网站教程金华seo扣费
  • 想在网上做外卖 上什么网站好yandx引擎入口
  • 网站开发包括哪些如何建立一个网站
  • wordpress淘宝优惠券杭州seo优化