1. “开-闭”原则(Open-Closed Principle):对扩展开放,对修改关闭
2. 里氏代换原则(Liskov Substitution Principle):一个软件实体如果使用的是一个基类的话,那么一定适用于其子类,而且它根本不能察觉出基类对象和子类对象的区别
3. 依赖倒转原则(Dependency Inversion Principle):要依赖于抽象,而不要依赖于具体
4. 接口隔离原则(Interface Segregation Principle):使用多个专门的接口比使用单一的总接口要好
5. 组合/聚合复用原则(Composition/Aggregation Principle, Composite Reuse Principle):要尽量使用合成/聚合,尽量不要使用继承
6. 迪米特原则(Law of Demeter, Least Knowledge Principle):一个对象应当对其他对象有尽可能少的了解