7大设计原则

这个作业属于哪个课群 https://edu.cnblogs.com/campus/gdgy/2021Softwarecodedevelopmenttechnology
这个作业要求在哪 https://edu.cnblogs.com/campus/gdgy/2021Softwarecodedevelopmenttechnology/homework/11833
作业目标 1.对各种设计模式有一定的了解
2.明白代码中哪些地方运用到了哪种设计原则
3.在实际开发中注意设计原则的使用

七大设计原则

  1. 单一职责原则 (Single Responsibility Principle)
  2. 开放-关闭原则 (Open-Closed Principle)
  3. 里氏替换原则 (Liskov Substitution Principle)
  4. 依赖倒转原则 (Dependence Inversion Principle)
  5. 接口隔离原则 (Interface Segregation Principle)
  6. 迪米特法则(Law Of Demeter)
  7. 组合/聚合复用原则 (Composite/Aggregate Reuse Principle)

单一职责原则 (Single Responsibility Principle)

  单一职责原则表示一个模块的组成元素之间的功能相关性。从软件变化的角度来看,就一个类而言,应该仅有一个让它变化的原因;
通俗地说,就是将复杂的系统分类,是每一个类只完成一项功能
单一职责原则的优点:
1.简单又直观的原则,但是在实际编码的过程中很难将它恰当地运用,需要结合实际情况进行运用。
2.单一职责原则可以降低类的复杂度,一个类仅负责一项职责,其逻辑肯定要比负责多项职责简单。
3.提高了代码的可读性,提高系统的可维护性。

开放-关闭原则 (Open-Closed Principle)

 开放-关闭原则表示软件实体 (类、模块、函数等等) 应该是可以被扩展的,但是不可被修改。
如果一个软件能够满足 OCP 原则,那么它将有两项优点:
1.能够扩展已存在的系统,能够提供新的功能满足新的需求,因此该软件有着很强的适应性和灵活性。
2.已存在的模块,特别是那些重要的抽象模块,不需要被修改,那么该软件就有很强的稳定性和持久性。

里氏替换原则 (Liskov Substitution Principle)

里氏替换原则告诉我们,当使用继承时候,类 B 继承类 A 时,除添加新的方法完成新增功能 P2,尽量不要修改父类方法预期的行为。
里氏替换原则的重点在不影响原功能,而不是不覆盖原方法。
继承包含这样一层含义:父类中凡是已经实现好的方法(相对于抽象方法而言),实际上是在设定一系列的规范和契约,虽然它不强制要求所有的子类
必须遵从这些契约,但是如果子类对这些非抽象方法任意修改,就会对整个继承体系造成破坏。而里氏替换原则就是表达了这一层含义。

依赖倒转原则 (Dependence Inversion Principle)

定义:高层模块不应该依赖低层模块,二者都应该于抽象。进一步说,抽象不应该依赖于细节,细节应该依赖于抽象。

举个例子, 某天产品经理需要添加新的功能,该功能需要操作数据库,一般负责封装数据库操作的和处理业务逻辑分别由不同的程序员编写。

封装数据库操作可认为低层模块,而处理业务逻辑可认为高层模块,那么如果处理业务逻辑需要等到封装数据库操作的代码写完的话才能添加的话讲会严重拖垮项目的进度。

正确的做法应该是处理业务逻辑的程序员提供一个封装好数据库操作的抽象接口,交给低层模块的程序员去编写,这样双方可以单独编写而互不影响。

依赖倒转原则的核心就是要我们面向接口编程,理解了面向接口编程,也就理解了依赖倒转。即实现什么样的功能在接口里面进行定义,由不同的类去进行调用接口实现功能,
当方法中需要实现这个功能时,可使用多态进行传参

接口隔离原则 (Interface Segregation Principle)

接口隔离原则强调:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。
注意:
1.接口隔离原则的思想在于建立单一接口,尽可能地去细化接口,接口中的方法尽可能少

2.但是凡事都要有个度,如果接口设计过小,则会造成接口数量过多,使设计复杂化。所以一定要适度。

迪米特法则(Law Of Demeter)

迪米特法则又称为 最少知道原则,它表示一个对象应该对其它对象保持最少的了解。通俗来说就是,只与直接的朋友通信。

也就是我们在设计时应注意在类成员信息封装在类内部,属性设为private(私有的),提供public(共有的)的方法让其他类对象
访问,以达到降低类与类之间耦合性太高的问题

组合/聚合复用原则 (Composite/Aggregate Reuse Principle)

组合/聚合复用原则就是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分; 新的对象通过向这些对象的委派达到复用已有功能的目的。

在面向对象的设计中,如果直接继承基类,会破坏封装,因为继承将基类的实现细节暴露给子类;如果基类的实现发生了改变,则子类的实现也不得不改变;
从基类继承而来的实现是静态的,不可能在运行时发生改变,没有足够的灵活性。于是就提出了组合/聚合复用原则,也就是在实际开发设计中,尽量使用组
合/聚合,不要使用类继承。

心得体会

实际开发时应该注意设计原则的使用,遵守了设计原则,我们就能将复杂的功能分解成众多小功能,方便实现以及后期的维护,采用将功能抽象成接口等方法
能够帮助我们降低类与类之间的耦合度,不会导致牵一发而动全身,这样子程序就比较容易维护和增添功能

后台编辑代码截图

posted @ 2021-03-17 19:44  言群  阅读(234)  评论(0)    收藏  举报