23种设计模式

设计模式六大原则:

  1. 单一职责原则:一个类或接口只承担一个职责。
  2. 开闭原则:类、模块和函数应该对扩展开放,对修改关闭。
  3. 里氏替换原则:任何基类可以出现的地方,子类一定可以出现。
  4. 迪米特法则:实体应尽量少地与其他实体之间发生相互作用,使得系统功能模块相对独立。
  5. 依赖倒置原则:针对接口编程,依赖于抽象而不依赖于具体。
  6. 接口隔离原则:使用多个隔离的接口,比使用单个接口要好。

设计模式分为三大类:

  1. 创建型(五种):单例模式、建造者模式、原型模式、工厂方法模式、抽象工厂模式。
  2. 结构型(七种):代理模式、装饰模式、适配器模式、外观模式、桥接模式、享元模式、组合模式。
  3. 行为型(十一种):策略模式、观察者模式、责任链模式、命令模式、解释器模式、模板方法模式、迭代器模式、备忘录模式、访问者模式、中介者模式、状态模式。
一:创建型
  1. 单例模式:保证在程序中某个类只有一个实例存在。
  2. 建造者模式:将复杂对象的建造过程抽象出来,使不同实现方法构造出不同表现的对象。
  3. 原型模式:通过复制现有对象来创建新的对象,而无需显式地调用构造函数。
  4. 工厂方法模式:定义一个用于创建对象的接口,但是让其子类决定将哪一个类实例化,让一个类的实例化延迟到其子类。
  5. 抽象工厂模式:围绕一个超级工厂创建其他工厂。
二:结构型
  1. 代理模式:对其他对象提供一种代理以控制对这个对象的访问。
  2. 装饰模式:在不改变对象原有结构的情况下,动态地为对象添加新的功能。
  3. 适配器模式:将一个类的接口转换成客户希望的另外一个接口。
  4. 外观模式:隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。
  5. 桥接模式:提供抽象化和实现化之间的桥接结构,来实现二者的解耦。
  6. 享元模式:提供了减少对象数量从而改善应用所需的对象结构的方式。
  7. 组合模式:组合多个对象形成树形结构以表示“整体-部分”关系的层次结构。
三:行为型
  1. 策略模式:将对象和行为分开,将行为定义为一个 行为接口 和 具体行为 的实现。
  2. 观察者模式:定义一种订阅机制,可在对象事件发生时通知多个 “观察” 该对象的其他对象。
  3. 责任链模式:将多个对象通过引用连接起来形成一条链。
  4. 命令模式:请求以命令的形式包裹在对象中,并传给调用对象。
  5. 解释器模式:指给定一个语言(表达式)来表示它的文法,并定义一个解释器,使用该解释器来解释语言中的句子(表达式),并得到结果。
  6. 模板方法模式:在超类中定义了一个算法的框架, 允许子类在不修改结构的情况下重写算法的特定步骤。
  7. 迭代器模式:提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示。
  8. 备忘录模式:将对象的内部状态保存在一个备忘录对象中,并在需要时恢复对象的状态,而不破坏对象的封装性。
  9. 访问者模式:在不改变数据结构的前提下定义作用于这些元素新的操作。
  10. 中介者模式:用一个中介对象来封装一系列的对象交互。
  11. 状态模式:允许对象在内部状态发生改变时改变其行为。

你可能感兴趣的:(设计模式,设计模式)