一、单一职责原则(SRP):
就一个类而言,应该仅有一个引起它变化的原因。
如果一个类承担的职责过多,就等于把这些职责耦合在了一起。一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。
二、开发 -- 封闭原则(OCP):
1、对于扩展是开发的(open for extension).
2、对于更改是封闭的 (Closed for modification)。
图1 既不开发又不封闭的client
图2 Strategy模式: 既开发又封闭的Client
三、依赖倒置原则(DIP)
1、高层次模块不应该依赖于底层模块,二者都应该依赖于抽象。
2、抽象不应该依赖于细节,细节应该依赖于抽象。
四、接口隔离原则(ISP)