一、原文链接
https://www.cnblogs.com/EthanWong/p/16045901.html
1.工厂模式
2.模板模式
3.策略模式
二、学习思考总结
1.工厂模式
代码均在上述链接当中,以下均为本人学习总结
有时候业务流程会出现很多类别判断,然后出现很多的if-else代码,比如平台抽奖会出现不同的奖品,然后发放不同的奖品,一般的业务逻辑流程就是通过一个奖品类别枚举字段进行if-else判断,选择性判断进入相应的方法体执行相应的奖品发放业务代码
引入工厂模式后,可以统一抽象出一个接口类,里面定义奖品发放接口方法,并且统一定义入参,每一类奖品定义相应的接口实现类,在实现的接口方法当中个性化书写相应奖品的业务代码,最后各个奖品实现类的实例统一由工厂类StoreFactory进行获取管理,需要使用是通过工厂类StoreFactory根据奖品的枚举值获取
2.策略模式
就是将上述的各个发放奖品实例在初始化时放入Map当中,这里用到的是afterPropertiesSet方法,在奖品实例初始化完成时将本实例放入StoreFactory的静态属性容器Map当中,这个容器在调用StoreFactory的静态方法时发生StoreFactory类加载和内部静态变量容器Map的初始化
3.模板模式
一个要执行几个流程,不同对象执行的流程相同,但执行的具体内容不同,将各个共同方法抽象到一个抽象类中,定义共同的执行抽象方法,要实现各自的个性化业务只要继承抽象类实现其抽象方法,在抽象方法中执行该对象想要执行的业务,简洁来说就是爸爸要做几件事,但是这几件事具体怎么做全部都让各个儿子来做,具体怎么做全看各个儿子自己的想法,使用上面调用方直接使用抽象类引用即可,已经赋值了具体实现类对象