设计模式分类
创建型模式
- 工厂方法模式
- 抽象工厂模式
- 单例模式
- 建造者模式
- 原型模式
结构型模式
- 适配器模式
- 装饰器模式
- 代理模式
- 外观模式
- 桥接模式
- 组合模式
- 享元模式
行为型模式
- 策略模式
- 模板方法模式
- 观察者模式
- 迭代子模式
- 责任链模式
- 命令模式
- 备忘录模式
- 状态模式
- 访问者模式
- 中介者模式
- 解释器模式
设计模式之间的关系
设计模式的六大原则
总原则-开闭原则(Open Close Principle): 允许对功能扩展(开放), 不允许对原有代码修改(关闭)。
单一职责原则(Single responsibility principle)
说明:每个类应该实现单一的职责,否则就应该把类拆分。
目的:类的复杂性降低,可读性提高,可维护性提高。里氏替换原则(Liskov Substitution Principle)
说明:任何基类可以出现的地方,子类一定可以出现。尽量把父类设计成抽象类或接口,让子类继承或实现其方法,子类对父类的方法尽量不要重写和重载。这样子类对象可以替换掉父类对象。
目的:对实现抽象化的具体步骤的规范。依赖倒转原则(Dependence Inversion Principle)
说明:面向接口编程,依赖于抽象而不依赖于具体。写代码时用到具体类时,不与具体类交互,而与具体类的上层接口交互。
目的:降低模块间的耦合。接口隔离原则(Interface Segregation Principle)
说明:每个接口中不存在子类用不到却必须实现的方法,如果不然,就要将接口拆分。使用多个隔离的接口,比使用单个接口(多个接口方法集合到一个的接口)要好。
目的:提高程序设计灵活性。迪米特法则(最少知道原则)(Demeter Principle)
说明:每个类尽量减少对其他类的依赖,这样很容易使得系统的功能模块功能独立,相互之间不存在(或很少有)依赖关系。
目的:降低类之间的耦合,减少对其他类的依赖。合成复用原则(Composite Reuse Principle)
说明:尽量首先使用合成/聚合的方式,而不是使用继承。
目的:新的对象可以通过向已有对象委派达到复用已有功能的目的。