设计模式七大原则

七大原则有:

  • 单一原则原则
  • 接口隔离原则
  • 依赖倒转原则
  • 里氏替换原则
  • 开闭原则
  • 迪米特法则
  • 合成复用原则

1 单一职责原则

1.1 基本介绍

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

1.2 应用实例

交通工具

单例模式:static private 懒汉写开,饿汉写一块。

2 接口隔离原则

请添加图片描述

请添加图片描述

2.1 基本介绍

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

类A通过接口Interfacel 依赖类B,类C通过接口Interface1 依赖类D,如果接口Interfacel 对于类A和类C来说不是最小接口,那么类B和类D必须去实现他们不需要的方法。

隔离原则应当这样处理:

接口Interface1拆分为独立的几个接口类A和类C分别与他们需要的接口建立依赖关系。也就是采用接口隔离原则

3 依赖倒转原则

在这里插入图片描述

4 里氏替换原则

尽可能少的重写父类,创建更加基础的基类,让A和B都去继承这个基类,原有的继承关系去掉,采用依赖,聚合,组合等关系代替。

5 开闭原则

开闭原则是编程中最基础,最重要的设计原则

当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化。

6 迪米特法则

(最少知道原则)

陌生的类最好不要以局部变量的形式出现在类的内部。只与直接朋友通信

直接朋友:我们称出现成员变量,方法参数,方法返回值中的类为直接朋友。

非直接朋友应该封装起来。

迪米特法则至少要求降低类与类直接的耦合,而不是不能耦合。

7 合成复用原则

原则是尽量使用合成/聚合的方式,而不是使用继承。

相关推荐

  1. 设计模式原则

    2024-02-19 09:34:01       48 阅读
  2. 设计模式——原则

    2024-02-19 09:34:01       43 阅读
  3. 设计模式设计原则

    2024-02-19 09:34:01       40 阅读
  4. 设计模式原则)合成复用原则

    2024-02-19 09:34:01       17 阅读
  5. 详细介绍设计模式原则

    2024-02-19 09:34:01       43 阅读
  6. 设计模式原则-单一职责原则SingleResponsibility

    2024-02-19 09:34:01       30 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-19 09:34:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-19 09:34:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-02-19 09:34:01       87 阅读
  4. Python语言-面向对象

    2024-02-19 09:34:01       96 阅读

热门阅读

  1. docker修改工作目录

    2024-02-19 09:34:01       56 阅读
  2. MVCC简记

    2024-02-19 09:34:01       57 阅读
  3. 【nginx实践连载-4】彻底卸载Nginx(Ubuntu)

    2024-02-19 09:34:01       54 阅读
  4. Python内置函数05——filter

    2024-02-19 09:34:01       45 阅读
  5. pytorch导出为onnx,使用onnxruntime进行推理

    2024-02-19 09:34:01       41 阅读
  6. UDP协议

    UDP协议

    2024-02-19 09:34:01      51 阅读
  7. [Optimization] Codes Answer to online quiz 1

    2024-02-19 09:34:01       49 阅读
  8. harbor v1.7.1镜像仓库无法访问,并提示502 Bad Gateway

    2024-02-19 09:34:01       48 阅读
  9. Nginx错误502 Bad Gateway

    2024-02-19 09:34:01       53 阅读
  10. AutoSAR(基础入门篇)7.3-使用DEV配置SWC&RTE

    2024-02-19 09:34:01       52 阅读
  11. Rust-所有权(ownership)

    2024-02-19 09:34:01       53 阅读