依赖倒置原则(DIP):
- 高层模块不应该依赖于低层模块,二者都应该依赖于抽象。
- 抽象不因该依赖于实现细节,实现细节因该依赖于抽象(抽象是稳定的,细节是不稳定的)。
开放封闭原则(OCP):
- 对扩展开放,对修改封闭。
- 类模块是可扩展的,但是不可修改。
单一职责原则(SRP):
- 一个类仅有一个可以引起它变化的原因。
- 变化的方向隐含着类的责任。
Liskov替换原则(LSP):
- 子类必须能够替换它的基类。
- 继承表达类型抽象。
接口隔离原则(ISP):
- 不应该强迫客户程序依赖他们不用的方法。
- 接口因该小而完备。
优先使用对象组合,而不是类继承:
- 类继承通常为“白箱复用”,对象组合通常为“黑箱复用”。
- 继承在某种程度上破坏了封装性,子类和父类耦合度高。
- 对象组合则只要求被组合对象具有良好定义的接口,耦合度低。
封装变化点:
使用封装来创建对象之间的分界层,让设计者可以在分界层的一侧进行修改,而不会对另一侧产生不好的影响,从而减小层次间的松耦合。
针对接口编程:
- 不将变量类型声明为某个特定类型,而是声明为某个接口
- 客户程序无需知道对象的具体类型,只需要知道对象所具有的接口
- 减少系统中的各部分依赖关系从而实现高内聚,松耦合的类型设计方案
创建型模式是对类的实例化过程的抽象化,能够提供对象的创建和管理职责
结构型模式:
工厂方法模式
抽象工厂模式
单例模式
建造者模式
原型模式模式
结构型模式的目的是通过组合类或对象产生更大结构以适应更高层次的逻辑需求
行为型模式 :
- 适配器模式
- 装饰器模式
- 代理模式
- 外观模式
- 桥接模式
- 组合模式
- 享元模式
策略模式
模板方法模式
观察者模式
迭代子模式
责任链模式
命令模式
备忘录模式
状态模式
访问者模式
中介者模式
解释器模式



