面向对象设计原则

2021-11-25  本文已影响0人  _Walker__

六大原则

  1. 单一职责 (SRP, Single Responsibility Principle)
  2. 开闭原则 (OCP, Open Close Principle)
  3. 里氏替换原则 (LSP, Liskov Substitution Principle)
  4. 依赖倒置原则 (DIP, Dependence Inversion Principle)
  5. 接口隔离原则 (ISP, Interface Segregation Principle)
  6. 迪米特原则 (LOD, Law of Demeter、Least Knowledge Principle)

1 单一责任原则
一个类应该只有一个引起变化的原因

2 开放-封闭原则
类应该对拓展开放,对修改关闭

设计目标是允许类容易扩展,在不修改现有类的基础上,就可搭配新的行为。

3 里氏替换原则
继承必须确保超类所拥有的性质在子类中仍然成立。

4 依赖倒置原则(DIP,Dependency Inversion Principle)
要依赖抽象,不要依赖具体类。
不能让高层组件依赖低层组件,而且,不管高层或低层组件,“两者”都应依赖于抽象。
(所谓倒置,是指低层去依赖低层的抽象)

实践的指导方针(尽量达到,而不是严格达到)

5 接口隔离原则
客户不应该被迫依赖于它不会使用的方法

要为各个类建立它们需要的专用接口,而不要试图去建立一个很庞大的接口供所有依赖它的类去调用。

6 “最少知识”原则
只和你的密友交谈
白话:让类间的依赖变少

指导方针(主要为规避“链式调用”):在对象的方法内,只应该调用属于以下范畴的方法

缺点:


其他原则

封装变化
找出需要变化的部分,把它们独立出来,避免和不需要变化的代码混在一起。

针对接口编程,不针对实现编程
用接口(超类型)表示行为,通过行为类提供实现,而不是类本身来实现。

多用组合,少用继承
使用组合建立系统具有很大的弹性,不仅可将算法族封装成类,更可以“运行时动态改变行为”。

为了交互对象间的松耦合设计而努力

好莱坞原则
别调用我们,我们会调用你

白话:允许低层组件将自己挂钩到系统(高层组件)上,但是高层组件决定什么时候、怎样使用这些底层组件。
  模版方法遵守了好莱坞原则,它的高层组件是基类(定义算法流程的部分)。

上一篇下一篇

猜你喜欢

热点阅读