23种设计模式,精简总结

参照大牛的总结,精简成自己能理解的说法,有不对的欢迎指出

23种设计模式汇总整理

设计模式分三大类

  • 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式
  • 结构型模式,共七种:适配器模式、装饰者模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
  • 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

设计模式六大原则(总结:最终是为了实现“开闭原则”,即关闭修改,开发扩展)

  • 单一职责原则:对某一个类,应单一职责,在需求扩展时,可避免修改代码。
  • 里氏替换原则:基类可以在任何地方替换成子类,子类应尽量不要重写或重载基类的方法,因为基类是一个规范,子类不应破坏这个规范。
  • 依赖倒转原则:面向接口编程,可以很大程度与单个具体类解耦。
  • 接口隔离原则:每个接口,如果子类中有不需要,但却必须实现的方法,则需将接口拆分。
  • 迪米特法则:一个类对自己依赖的类知道的越少越好,即应该将逻辑封装。
  • 合成复用原则:尽量首先使用合成/聚合的方式,而不是使用继承。

创建型模式

  • 工厂模式
    • 使用场景:创建对象
    • 说明:
      • 简单工厂模式:一个工厂,根据传参不同,生成不同种类对象
      • 工厂方法模式:多个工厂,每个工厂专门生成一种对象
  • 抽象工厂模式
    • 使用场景:创建对象
    • 说明:多个工厂,每个工厂专门生成一个产品族的多种对象
  • 单例模式
    • 使用场景:从始至终,只需要同一个对象
    • 说明:
      • 懒汉式单例:获取对象时,判断静态工厂类中的该静态属性不为空,则生成对象,放入静态属性,否则就直接返回。线程不安全,三种方法使线程安全,方法锁,类锁,静态内部类(类加载时,就生成对象放在静态内部类)
      • 饿汉式单例:类加载时,就生成对象放在静态属性中,每次调用返回该属性。线程安全
  • 建造者模式
    • 使用场景:创建初始化复杂的一个产品族的多种对象,即有相同初始化流程的多种对象
    • 说明:提前定义好建造流程,传入具体建造器的实现(即对象针对流程的具体实现),得到相应对象
  • 原型模式
    • 使用场景:用于对象的复制,主要用于new比较耗资源或者麻烦的时候,直接生成一个对象
    • 说明:调用clone方法
    • 组成:
      • 原型抽象类:实现Cloneable接口,重写clone方法
      • 具体原型类:继承原型抽象类

行为型模式

  • 策略模式
    • 使用场景:一个系统需要动态地在几种算法中选择一种
    • 说明:调用时,创建具体策略类传入环境类中,调用环境类中的算法方法,传入不同的具体策略类,会调用不同的算法,这样所有的算法就不会在同一个文件中,更容易维护
    • 组成:
      • 抽象策略类:定义公共行为的接口
      • 具体策略类:实现行为的具体算法
      • 环境类:需传入具体策略类构建,环境类中,有一个统一调用算法的方法,实际则是调用具体策略类的算法

后续待更。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值