1) 开闭原则:对扩展开放,对修改关闭;也就是用抽象构建框架,用实现扩展细节
2) 单一职责:一个类实现的功能要尽可能单一,避免像一个函数实现两个功能这样的设计(这时最后重构成两个函数)
3) 里氏替换原则:不要破坏继承体系,如正方形和长方形类,如果把正方形当做长方形的子类(正方形只需定义一个边长),就不符合里氏替换原则
4) 依赖倒置原则:即要面向接口编程,这样一个对象可以复用起来,并实现不同的功能
5) 接口隔离原则:设计接口时要精简
6) 迪米特原则:降低耦合,只与有直接联系的对象通信。尽量考虑用组合的方式替代继承,降低对象间的耦合。