设计模式8种原则

1. 开放封闭

  • 允许对类进行扩展,但禁止更改。

2. 依赖倒置

  • 高层模块(稳定的)不应该依赖于低层模块(变化的,如子类)。二者都应该依赖于抽象。
  • 抽象不应该依赖于实现,实现应该依赖于抽象。

3. 里氏替换

  • 子类必须能够替换他们的基类(IS-A)
  • 继承表达抽象类型

4. 单一职责原则

  • 一个类应该仅有一个引起它变化的原因
  • 变化的方向隐含着类的责任

5. 接口隔离原则

  • 不应该强迫用户依赖它们不用的接口。
  • 接口应该小而完备

6. 优先使用对象组合,而不是类继承

  • 继承某种程度上破坏了类的封装性。
  • 使用对象组合可以避免这一点。

7. 封装变化点

  • 使用封装来创建对象之间的分层界限。

8. 针对接口编程,而不是针对实现

  • 客户程序只需要知道对象的接口即可,从而降低代码间的耦合。

总结

  • 上述原则所遵循的规则主要就是:
    1. 降低代码耦合度,便于扩展;
    2. 总会有变化和稳定的两种模块;
    3. 当发生需求变化时,往往只需要新增一种子类。

相关推荐

  1. 设计模式8原则

    2024-07-17 05:44:04       21 阅读
  2. 23设计模式原型模式

    2024-07-17 05:44:04       44 阅读
  3. 设计模式——单例模式8实现

    2024-07-17 05:44:04       53 阅读
  4. Spring框架中的8设计模式

    2024-07-17 05:44:04       52 阅读
  5. 设计模式设计原则

    2024-07-17 05:44:04       26 阅读

最近更新

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

    2024-07-17 05:44:04       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-17 05:44:04       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-17 05:44:04       58 阅读
  4. Python语言-面向对象

    2024-07-17 05:44:04       69 阅读

热门阅读

  1. 内核线程之User-Mode Helpers

    2024-07-17 05:44:04       21 阅读
  2. 使用Spring Boot集成RocketMQ进行消息发送的示例

    2024-07-17 05:44:04       23 阅读
  3. 量化机器人在不同市场环境下的表现

    2024-07-17 05:44:04       22 阅读
  4. 微信小程序:2.全局开发

    2024-07-17 05:44:04       26 阅读
  5. DRF分页器(Django Restful Framework)

    2024-07-17 05:44:04       29 阅读
  6. 速盾:DDOS攻击能使用高防CDN防御吗?

    2024-07-17 05:44:04       22 阅读
  7. 面试题 29. 顺时针打印矩阵

    2024-07-17 05:44:04       24 阅读
  8. 【python】运用Request库实现爬虫

    2024-07-17 05:44:04       22 阅读
  9. opencv—常用函数学习_“干货“_9

    2024-07-17 05:44:04       32 阅读
  10. 掌握Conda配置:如何禁用Base环境的自动激活

    2024-07-17 05:44:04       22 阅读
  11. volatile的应用

    2024-07-17 05:44:04       23 阅读