设计原则:
- 找出应用中可能变化之处把它们独立出来,不要和那些不需要变化的代码混在一起。
- 针对接口编程而不是针对实现编程。(针对超类型编程)
- 少用组合,多用继承
单一职责原则
开放关闭原则
对修改关闭对扩展开放,让程序更稳定更灵活
里氏替换原则
LSP原则 (抽象)
所有引用基类的地方必须能更透明的使用其子类的对象
OOP思想中继承的优点和缺点分析:
优点:
- 代码重用,每个子类都拥有父类的方法和属性
- 子类与父类基本相似,但是又有区别
- 提高代码的可扩展性
缺点:
- 继承是侵入性的,只要继承就必须拥有父类的所有属性和方法
- 可能造成子类的代码冗余,灵活性降低
依赖导致原则
让项目拥有变换的能力
DIP
- 高层模块不应该依赖底层模块,两者都都应该依赖其抽象
- 抽象不应该依赖细节
- 细节应该依赖抽象
模块间的以来通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或者抽象类产生的.
接口隔离原则
系统有更高的灵活性 ISP
类间的依赖关系应该建立在最小的接口上
迪米特原则
更好的扩展性LOD 也称为"最少知识原则"
一个对象应该对其他对象有最少的了解