美文网首页
面向对象设计原则

面向对象设计原则

作者: _Walker__ | 来源:发表于2021-11-25 23:19 被阅读0次

六大原则

  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 “最少知识”原则
只和你的密友交谈
白话:让类间的依赖变少

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

  • 该对象本身
  • 参数传递进来的对象
  • 此方法创建或实例化的任何对象
  • 该对象的任何组件(字段)

缺点:

  • 会产生更多的“包装”类
  • 增加复杂度和开发时间
  • 降低运行性能

其他原则

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

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

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

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

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

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

相关文章

  • 面向对象设计原则

    面向对象设计原则 面向对象设计原则是设计模式的基础,每个设计模式都符合一一种或多种面向对象的设计原则。 常用的面向...

  • 面向对象设计原则(二)开闭原则

    面向对象设计原则之开闭原则 开闭原则是面向对象的可复用设计的第一块基石,它是最重要的面向对象设计原则。 开闭原则的...

  • 01-设计模式原则

    面向对象的设计原则 面向对象的设计原则也被称为SOLID。SOLID原则包括单一职责原则、开闭原则、里氏替换原则、...

  • Swift设计模式----目录

    面向对象设计原则: 开闭原则 单一职责原则 依赖倒置原则 接口分离原则 迪米特法则 里氏替换原则 面向对象设计模式...

  • 面向对象设计原则

    面向对象设计原则

  • (1)面向对象的六大原则

    什么是面向对象原则 面向对象原则——oop(object Oriented Principle),遵循原则设计程序...

  • 面向对象设计原则

    面向对象设计原则 面向对象设计原则概述[https://www.jianshu.com/p/57137d81c55...

  • 设计模式原则-开闭原则

    开闭原则(OCP)是面向对象设计中“可复用设计”的基石,是面向对象设计中最重要的原则之一,其它很多的设计原则都是实...

  • 设计模式的原则

    面向对象的原则是面向对象的目标,而设计模式是为了实现这些原则的手段和方法。这也就是为什么要有设计模式。 面向对象的...

  • 面向对象、设计原则、设计模式、编程规范、重构

    面向对象、设计原则、设计模式、编程规范、重构 面向对象 主流的三个编程风格有:面向对象,面向过程,函数式编程。 面...

网友评论

      本文标题:面向对象设计原则

      本文链接:https://www.haomeiwen.com/subject/tvzlaltx.html