单一职责原则
对于一个类而言,应该仅有一个引起它变化的原因。
如果一个类承担的职责过多,等于把这些职责耦合在一起,一个职责的变化可能会削弱或抑制这个类完成其他职责的能力,这种耦合会导致脆弱的设计。
开放-封闭原则
开放-封闭原则:软件实体(类、模块、函数)应该是可以扩展的,但是不可以修改。
无论模块多么封闭,都会存在一些无法对之封闭的变化,既然不可能完全封闭,设计人员对于模块应该对哪种变化封闭做出选择。等到变化发生时立即采集行动。
面对需求,对程序的改动应该是通过增加新代码进行,而不是更改现有的代码。
依赖倒转原则
抽象不应该依赖细节,细节应该依赖于抽象。
针对接口编程,不要对实现编程。
高层模块不应该依赖底层模块。