需求: 假设有这么一个需求: 一个电商系统,当用户消费满1000 金额,可以根据用户VIP等级,享受打折优惠。根据用户VIP等级,计算出用户最终的费用。 普通会员 不打折 白银会员 优惠50元 黄金会员 8折 白金会员 优惠50元,再打7折 工厂+策略 ...
多个if else代码: 上面只统计了 个学习时间,如果我们要写其他的学习时间就需要继续添加if else,如果业务很复杂,那么这个代码看起来会很乱,不方便维护 下面用策略模式和工厂模式优化该if else .定义抽象策略角色 接口 .编写具体策略角色 实现策略角色接口 小学毕业策略角色: 这里的InitializingBean接口 具体看Spring Bean的生命周期 只有一个方法afterP ...
2019-02-14 17:40 0 1662 推荐指数:
需求: 假设有这么一个需求: 一个电商系统,当用户消费满1000 金额,可以根据用户VIP等级,享受打折优惠。根据用户VIP等级,计算出用户最终的费用。 普通会员 不打折 白银会员 优惠50元 黄金会员 8折 白金会员 优惠50元,再打7折 工厂+策略 ...
最近在工作中优化了一段冗余的if else代码块,感觉对设计模式的理解和运用很有帮助,所以分享出来。鉴于原代码会涉及到公司的隐私,因此就不贴出来了。下面以更加通俗易懂的案例来解析。 假如写一个针对员工上班不遵守制度做相应惩罚的程序,比如,上班迟到:罚100;上班睡觉:罚1000;上班早退:警告 ...
http://www.cnblogs.com/pfblog/p/7815238.html 最近在工作中优化了一段冗余的if else代码块,感觉对设计模式的理解和运用很有帮助,所以分享出来。鉴于原代码会涉及到公司的隐私,因此就不贴出来了。下面以更加通俗易懂的案例来解析。 假如写一个针对 ...
将判断及处理定义为一个策略对象,key为判断条件,值为函数,可带参。 ...
一.实战需求:redis-key过期监听 二.问题:大量key会造成监听代码臃肿 三.解决方案:使用策略模式+工厂模式代替if-else 代码: 第一部分:redis-springboot配置 第二部分:监听处理器 第三部分:策略接口 ...
前言 在之前文章说到,简单 if-else,可以使用 卫语句 进行优化。但是在实际开发中,往往不是简单 if-else 结构,我们通常会不经意间写下如下代码: -------------------- 理想中的 if-else -------------------- public ...
前言 不出意外,这应该是年前最后一次分享,本次来一点实际开发中会用到的小技巧。 比如平时大家是否都会写类似这样的代码: 条件少还好,一旦 else if 过多这里的逻辑将会比较混乱,并很容易出错。 比如这样: 摘自 cim 中的一个客户端命令的判断条件。 刚开始条件 ...
前言 利用利用策略模式实际开发中 if else 条件判断过多的问题 比如平时大家是否都会写类似这样的代码: 条件少还好,一旦 else if 过多这里的逻辑将会比较混乱,并很容易出错。 比如这样: 摘自 cim 中的一个客户端命令的判断条件。 刚开始条件较少,也就 ...