1. 单一职责原则(Single Responsibility Principle)
一个对象应该只包含单一的指责,并且该职责被完整封装在一个类中,理解起来就是一个类应该专心做自己的事。
2. 开闭原则(Open-Closed Principle)
软件实体应当对扩展开放,对修改关闭。
3. 里氏替代原则(Liskov Substitution Principle)
所有引用基类的地方必须能透明的使用其字类的对象。即一个接口或类能使用其实现类或字类来替代。
4. 依赖倒转原则( Dependence Inversion Principle)
高层模块不应该依赖底层模块,他们都应该依赖抽象。抽象不应该依赖于细节,细节应该依赖于抽象。
5. 接口隔离原则(Interface Segregation Principle)
客户端不应该依赖那些它不需要的接口
6. 合成复用原则(Composite Reuse Principle)
优先使用对象组合,而不是通过继承来达到复用的目的
7. 迪米特法则(Law of Demeter)
每一个软件单位对其他单位都只有最少的知识,而且局限于那些与本单位密切相关的软件单位