策略模式和工厂模式的搭配使用可以很好地消除代码if-else的多层嵌套 需求 针对店下商铺,有这样一个需求,对用户客户分为了普通客户、vip客户、超级vip用户、专属vip用户4个等级,每当用户购买商品时,针对不同的用户等级和消费金额采取不同的打折优惠策略。在平常的开发当中,必然会 ...
需求 针对店下商铺,有这样一个需求,对用户客户分为了普通客户 vip客户 超级vip用户 专属vip用户 个等级,每当用户购买商品时,针对不同的用户等级和消费金额采取不同的打折优惠策略。在平常的开发当中,必然会出现多层的if else嵌套判断,先判断用户的等级再判断用户购买商品的消费金额。 弊端 以上的情况出现了多层的if else嵌套,除此之外,以后如果需求再有变动,需要再增加一个用户等级,那么 ...
2020-03-13 10:51 0 819 推荐指数:
策略模式和工厂模式的搭配使用可以很好地消除代码if-else的多层嵌套 需求 针对店下商铺,有这样一个需求,对用户客户分为了普通客户、vip客户、超级vip用户、专属vip用户4个等级,每当用户购买商品时,针对不同的用户等级和消费金额采取不同的打折优惠策略。在平常的开发当中,必然会 ...
为了防止大量的if...else...或switch case代码的出现,可以使用策略模式+工厂模式进行优化。 在我的项目当中,报表繁多,所以尝试了这种方式进行优化报表的架构。代码很简单,如下: Factory工厂类 接口 实现类 测试 打印如下: 总结 ...
怎么把策略模式和工厂模式结合起来使用 如果大家对策略模式和工厂模式不是很了解的话可以先看前面文章策略模式:https://www.jianshu.com/p/958281936901工厂模式:https://www.jianshu.com/p/9078481e00c6 ...
无论工厂还是策略模式,每个具体工具类(工厂模式)/具体策略类(策略模式)中执行方法名都是一样的,都和抽象工具(工厂模式)/抽象策略(策略模式)中方法名一样的 1、简单工厂类 思想:将创建何种工具交由工厂。将原本逻辑if...else...中“变”的部分抽离为具体工具类,调用方通过在工厂中 ...
Java设计模式中的策略模式(Strategy Patten)定义了一组算法,将每个算法都封装起来,并且可使它们之间可以相互替换,在客户端调用它们时可以互不影响。 策略模式主要由三个角色组成 1、抽象策略角色:通常是一个接口或抽象类实现,我们的具体策略类就是继承或实现这个抽象角色 ...
Context中改动了一些代码,和简单工厂模式结合使用: 测试类:测试类中注释掉的代码是没有结合简单工厂模式的时候在客户端写的代码。 测试 ...
策略模式,需要我们结合简单工厂模式,更高级地用法可能需要我们掌握Java反射机制。简单工厂模式我们在最早的时候介绍,我们也谈到了一点Java的反射机制。借着学习策略模式的机会,我们顺便复习一下简单工厂模式和反射。 先说说何为策略模式。“策略”我的理解是,对一件事,有不同的方法去做,至于用何种 ...
策略模式实现方式 a) 提供公共接口或抽象类,定义需要使用的策略方法。(策略抽象类) b) 多个实现的策略抽象类的实现类。(策略实现类) c) 环境类,对多个实现类的封装,提供接口类型的成员量,可以在客户端中切换。 d) 客户端 调用环境类 进行不同策略的切换。 策略模式的优点 ...