设计模式六原则一法则

1.单一职责原则(Single Responsibility Principle, SRP)

对类来说的,即一个类应该只负责一项职责。如类 A 负责两个不同职责:职责 1,职责 2。当职责 1 需求变更而改变 A 时,可能造成职责 2 执行错误,所以需要将类 A 的粒度分解为 A1,A2

  1. 降低类的复杂度,一个类只负责一项职责。
  2. 提高类的可读性,可维护性。
  3. 降低变更引起的风险。
  4. 通常情况下,我们应当遵守单一职责原则,只有逻辑足够简单,才可以在代码级违反单一职责原则;只有类中方法数量足够少,可以在方法级别保持单一职责原则。

2.接口隔离原则(Interface Segregation Principle, ISP)

使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口
接口隔离前

接口隔离后

3.依赖倒转原则(Dependency Inversion Principle, DIP)

  1. 高层模块不应该依赖低层模块,二者都应该依赖其抽象。
  2. 抽象不应该依赖细节,细节应该依赖抽象。
  3. 依赖倒转的中心思想是面向接口编程。
  4. 依赖倒转原则是基于这样的设计理念:相对于细节的多变性,抽象的东西要稳定的多。以抽象为基础搭建的架构比以细节为基础的架构要稳定的多。在 java 中,抽象指的是接口或抽象类,细节就是具体的实现类。
  5. 使用接口或抽象类的目的是制定好规范,而不涉及任何具体的操作,把展现细节的任务交给他们的实现类去完成。

依赖关系传递的三种方式:1)接口传递;2)构造方法传递;3)setter 方式传递。

4.里式替换原则(Liskov Substitution Principle, LSP)

所有引用基类(父类)的地方必须能透明地使用其子类的对象。
即:任何基类可以出现的地方,子类一定可以出现。

5.开闭原则(Open-Closed Principle, OCP)

一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。
即:对修改说No,对扩展说Yes。

6.合成复用原则(Composite Reuse Principle, CRP)

尽量使用对象来组合,而不是通过继承来表达复用的目的。
合成复用原则

7.迪米特法则(Law of Demeter, LoD)

又叫最少知道原则,即一个类对自己依赖的类知道的越少越好。也就是说,对于被依赖的类不管多么复杂,都尽量将逻辑封装在类的内部。
有个更简单的定义:只与直接的朋友通信,不和陌生人说话。

发布了1 篇原创文章 · 获赞 0 · 访问量 8

猜你喜欢

转载自blog.csdn.net/wsj_xlz/article/details/105228557