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

个人怎么做优惠券网站天津百度推广开户

个人怎么做优惠券网站,天津百度推广开户,建设银行江苏分行网站,怎么更改网站关键词枚举应该都有用过,枚举主要的作用是为了方便用户查找和引用枚举。 案例一 下面的枚举逻辑很简单,就是通过枚举值返回不同的结果。 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/440616.html

相关文章:

  • icp备案 网站服务内容网站服务费一年多少钱
  • 电子商务网站建设项目互动营销案例分析
  • 私人网站怎么注册网络营销的平台有哪些
  • 威宁住房和城乡建设局网站人工智能培训机构哪个好
  • 长沙网站设计多少钱一个月seo网站优化培训公司
  • 主机怎么做网站服务器青海百度关键词seo
  • app网站建设手机APP软件开发发文章用哪个平台比较好
  • 西安做酒店用品的网站宁波seo推广费用
  • wordpress 批量替换网站优化推广是什么
  • 做购物网站要多少钱十大管理培训课程
  • 模板网站建设公司seo百度刷排名
  • 济南做网站哪好找客源免费用哪个软件好
  • 网站建设三剑客关键词seo资源
  • 基于html5设计的网站建设网站外链工具
  • 有好点的网站建设公司吗广州今日新闻最新消息
  • 专注做蔬菜的网站湖南靠谱关键词优化
  • 做家乡网站刷百度指数
  • 淘宝网站建设方式seo怎么才能做好
  • Java怎么自己做网站软文营销方法有哪些
  • 阿里巴巴怎么做不花钱的网站查域名网站
  • 网络科技公司起名大全免费搜索引擎优化seo
  • 做网站建设的工资高吗株洲seo优化公司
  • 网站建设运行维护合同长沙专业seo优化推荐
  • 海报模板网站有哪些各平台推广费用
  • 佛山哪里有网站开发网站seo优化是什么
  • 做网站需要几个岗位开发一款app软件需要多少钱
  • 免费商标查询官网山东seo费用多少
  • 高端网站建设css3动画响应式模板东莞做好网络推广
  • 个体户可以注册网站建设服务交易平台官网
  • 商城网站公司阿里指数查询官网