美文网首页
常用设计模式介绍(文末有项目连接)

常用设计模式介绍(文末有项目连接)

作者: _River_ | 来源:发表于2021-05-11 23:17 被阅读0次
1:单例模式  
            创建一个单例对象 避免重复创建对象而导致的资源浪费

2:工厂模式  
             主要分简单工厂 工厂方法  抽象工厂        
             其中抽象工厂了解即可:实际上是一个类中创建多类对象
              
             简单工厂:把创建对象的逻辑抽取出来 形成一个真正生产对象的工厂类 (或工厂方法)
             工厂方法: 使用内外部工厂的结构  外部工厂生产内部工厂   内部工厂真正的生产对象
             可以使用Map集合容器来存储创建好的 有状态 或者 无状态的对象            

3:代理模式  
             静态代理 与 动态代理
             静态代理  A 调用 B的方式时  先经过B的代理类的方法 通过代理类的方法做增强 (每一个方法都需要代理)
             动态代理  利用反射完成AOP思想  在实现接口的实现类中 直接代理所有方法  在所有方法前后做增强 (自动代理所有的方法)           
              
4:装饰器模式  
               装饰器类与普通类 一起继承抽象类或者实现父接口类  
               因此装饰器利用了组合的方法  可以使用多个装饰器组合在一起 对某个类的某个方法 做各种增强
               装饰器类里面的方法名 与 普通类的方法名一致  并且调用普通方法  在调用前后实现了增强
 注意:
     代理和装饰器的区别
     1:代理通常是   使用反射的方法  增强所有方法  并且 增强前后与本身方法没有太大关联(打印日志)
     2:装饰器通常是 使用类组合的方法 增强单个方法  并且 增强前后与本身方法有太大关联 (支付时积分抵扣)

5:模板模式                   
             使用抽象类做为模板  抽象类中用使用final修饰的方法 去顺序调用本抽象类的其他方法
             实现类继承了该抽象类的模板就需要 按照该模板来执行相应的逻辑  做到了代码规范流程的作用 

6:观察者模式 
              实际上观察者模式就是发布订阅模式  一个发布者 多个订阅者 类似于消息框架 或者 spring的监听器
              发布者具有注册订阅者功能  使用Map集合容器存储订阅者的信息 当发布者发布信息对容器中的订阅发送消息即可
              
7: 策略模式
             策略模式 主要是用来做策略(逻辑)的选择 同时避免大量的if-else判断
             主要通过方法:
                1:可以使用枚举来获取对应的 策略类型  
                2:可以使用枚举来获取对应的 策略对象
                3:可以使用Map集合容器来存储策略对象 并 根据策略类型获取Map集合容器的策略对象  
             最终达到:完全避免了if-else 就能 使用 有状态或者无状态 的策略对象并执行对应逻辑   

项目连接

请配合项目代码食用效果更佳:
项目地址:
https://github.com/hesuijin/hesujin-design-pattern
Git下载地址:
https://github.com.cnpmjs.org/hesuijin/hesujin-design-pattern.git

相关文章

网友评论

      本文标题:常用设计模式介绍(文末有项目连接)

      本文链接:https://www.haomeiwen.com/subject/gflodltx.html