一、23种设计模式分类

创建型模式

这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。

包括:

  1. 单例模式(Singleton Pattern)
  2. 工厂模式(Factory Pattern)
  3. 抽象工厂模式(Abstract Factory Pattern)
  4. 建造者模式(Builder Pattern)
  5. 原型模式(Prototype Pattern)

结构型模式

这些设计模式关注类和对象的组合。继承的概念被用来组合接口和定义组合对象获得新功能的方式。

包括:

  1. 适配器模式(Adapter Pattern)
  2. 桥接模式(Bridge Pattern)
  3. 组合模式(Composite Pattern)
  4. 装饰器模式(Decorator Pattern)
  5. 外观模式(Facade Pattern)
  6. 享元模式(Flyweight Pattern)
  7. 代理模式(Proxy Pattern)

行为型模式
这些设计模式特别关注对象之间的通信。

包括:

  1. 责任链模式(Chain of Responsibility Pattern)
  2. 命令模式(Command Pattern)
  3. 解释器模式(Interpreter Pattern)
  4. 迭代器模式(Iterator Pattern)
  5. 中介者模式(Mediator Pattern)
  6. 备忘录模式(Memento Pattern)
  7. 观察者模式(Observer Pattern)
  8. 状态模式(State Pattern)
  9. 策略模式(Strategy Pattern)
  10. 模板模式(Template Pattern)
  11. 访问者模式(Visitor Pattern)

二、面向对象(OOP)七大原则

  1. 开闭原则:对扩展开放,对修改关闭。
  2. 里氏替换原则:继承必须确保超类所拥有的性质在子类中仍然成立。
  3. 依赖倒置原则:要面向接口编程,不要面向实现编程。
  4. 单一职责原则:控制类的粒度大小、将对象解耦、提高其内聚性。
  5. 接口隔离原则:要为各个类建立它们需要的专用接口。
  6. 迪米特法则:只与你的直接朋友交谈,不跟“陌生人”说话。
  7. 合成复用原则:尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。