- 封装变化 即数学逻辑上的抽象,抽取出变化的部分
- 尽量使用组合而不使用继承
- 封闭开放原则 对修改关闭,对扩展开放
- 单一职责 即类应该只有一个改变的原因
- 依赖反转 | 好莱坞原则 高级组件不依赖低级组件 | 别来找我,我会找你
- 针对接口(抽象)编程,不针对实现(具体)编程
- 不依赖具体类,依赖抽象 即一个私有变量尽量定义为接口,而非实现类
- 高内聚低耦合 为交互对象的松耦合设计而努力,高度关联的内聚功能,低关联的功能松耦合(降低代码之间的依赖)
- 少用继承,多用组合 即少用继承的方式,多用接口和私有变量的方式
- 只和密友交谈