作业二:软件设计原则与设计模式

这个作业属于哪个课程 班级的链接
这个作业要求在哪里 作业要求的链接
这个作业的目标 1. 学习一点设计模式

资料来源:博客1 博客2

设计模式的目的

  1. 代码重用性(相同功能的代码, 不用多次编写)
  2. 可读性(编码规范性, 便于其他程序员的阅读和理解)
  3. 可拓展性(当需要增加新的功能时, 成本低, 称为可维护性)
  4. 可靠性(当我们增加新的功能后, 对原来的功能没有什么影响)
  5. 使程序呈现高内聚, 低耦合的特性

1. 七大原则

  1. 单一职责原则
  2. 接口隔离原则
  3. 依赖倒转(倒置)原则
  4. 里氏替换原则
  5. 开闭原则
  6. 迪米特法则
  7. 合成复用原则

核心思想:

  1. 找到应用中可能需要变化之处, 把他们独立出来, 不要和那些不需要变化的代码混合在一起(分层)
  2. 针对接口编程, 而不是针对实现编程
  3. 为了交互对象之间的松耦合设计而努力

1.1 单一职责原则

对类来说, 即一个类应该只负责一项职责, 如类A负责两个不同的职责: 职责1, 职责2.

当职责1需求变更而改变A时, 可能造成职责2执行错误, 所以需要将类A的粒度分解为A1, A2.

//如何细粒度化
//方案1
将这多个职责分解为多个类, 每个类负责单一职责, 类级别遵守单一职责
class A1{
    void a1();
}
class A2{
    void a2();
}
//方案2
将这个类抽象为接口, 多个职责抽象为接口方法, 实现类中实现每个接口方法, 这种修改方法没有对原来的类做很大的修改, 在原先的基础上实现了其他职责, 可靠性和可拓展性高, 方法级别遵守单一职责
interface A{
	void a1();
	void a2();
}

**单一职责职责注意事项和细节: **

  1. 降低类的复杂度, 一个类只复制一项职责
  2. 提高类的可读性, 可维护性
  3. 降低变更引起的风险, 降低对原有业务的侵入
  4. 单一职责原则是类级别的, 但是当类中方法数量足够少, 我们可用在方法级别保持单一职责原则

1.2 接口隔离原则

客户端不应该依赖他不需要的接口, 即一个类对另一个类的依赖应该建立在最小的接口上

image-20220118181137938

  1. 类A通过接口Interface1依赖(方法参数需要类B)类B, 类C通过接口interface1依赖类B, 如果接口interface1对于类A和类C来说不是最小接口(即A只需要interface中的哦o1, o2, o3 不需要o4, o5), 那么类B和类D必须来实现他们不需要的方法
  2. 按隔离原则应该将接口Interface1拆分为独立的几个就扣, 类A和类C分别与他们需要的就扣建立依赖关系, 这就是接口隔离原则
  3. 将接口拆分为独立的几个接口
posted @ 2022-03-06 23:53  ttfzippo  阅读(40)  评论(0编辑  收藏  举报