面对对象6大原则
综述
- 单一职责原则
- 开闭原则
- 里氏替换原则
- 依赖倒置原则
- 接口隔离原则 以上5原则也被统称为SOLID原则
- 迪米特原则
单一职责原则
尽量保证同一类中函数职责相近,根据经验判断。
开闭原则
软件中的类、函数、模块应该对于拓展是开放的,但是对于修改是封闭的。修改的时候尽量通过拓展方式来修改,例如接口、继承这种抽象方式
里氏替换原则
所有引用基类的地方必须能够透明的使用其子类对象
例:
|
|
优点:
- 代码重用,减少创建类的成本,每个子类有拥有父类的方法和属性
- 子类和父类相似,但是又有不同点
- 提高代码可拓展性
缺点:
- 继承是侵入性的,只要继承就必须拥有父类的方法和属性
- 可能造成子类代码的冗余、灵活性降低,因为子类拥有父类的方法和属性
依赖倒置原则
模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或者抽象类产生的。
接口隔离原则
客户端不应依赖他不需要的接口。
类间的依赖关系应该建立在最小的接口上。
将非常庞大的、臃肿的接口拆分成更小或者更具体的接口,解开系统耦合,从而容易重构、更改和重新部署
迪米特原则
一个对象一个应该对其他对象有最少的了解。
通俗的将,一个类应该对自己需要耦合或调用的类知道的最少,类的内部如何实现与调用者或者依赖者没关系,调用者或者依赖者只需要知道它需要的方法即可,其他的一律不用管。类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。