1、开闭原则:对扩展开放,对修改关闭;
2、里氏代换原则:任何基类可以出现的地方,子类一定可以出现;
3、依赖倒转原则:高层模块不应该依赖低层模块,两者都应该依赖其抽象;
4、接口隔离原则:一个类对另一个类的依赖应该建立在最小的接口上;
5、迪米特法则:不越级进行会话,只能向直接关联的对象对话;
6、合成复用原则:尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。