一、依赖倒置:基于接口的编程模式
1. 高层模块不应该依赖于低层模块,二者都应该依赖于抽象
2. 抽象不依赖细节,细节依赖抽象
3. 低层模块替换修改不影响高层
二、里氏替换:子类替换父类–重写父类方法
继承重写不会出现其他地方的运行错误,还能起到替换作用
三、接口分隔:
最小接口原则,分功能设计,避免子类实现不必要的方法
四、最少知道原则:
1. 一个类一个职责,需要修改的理由只有一个
2. 减少实体之间的关联,让其相对独立。会被不同需求的对象调用,其中一个职责改变影响其他无关该职责的类的改变。
五、开闭原则:
在不修改原来的模块(修改关闭)的情况下扩展(扩展开发)
六、合成与复用原则
尽量合成、聚合,不使用继承