博客
关于我
设计模式——七大原则
阅读量:574 次
发布时间:2019-03-09

本文共 1254 字,大约阅读时间需要 4 分钟。

设计模式七大原则

目录

  • 单一职责原则 (Single Responsibility Principle)
  • 接口隔离原则 (Interface Segregation Principle)
  • 依赖倒转原则 (Dependence Inversion Principle)
  • 里氏替换原则 (Liskov Substitution Principle)
  • 开闭原则 (Open Closed Principle)
  • 迪米特法则 (Demeter Principle)
  • 合成复用原则 (Composite Reuse Principle)

单一职责原则 (Single Responsibility Principle)

类的核心原则之一:一个类应专注于执行单一的职责。

如果一个类承担多个职责,且其中一个职责产生变化时可能导致其他职责受到影响,这表明该类的粒度可以被拆分。例如, responsibilities A 和 responsibilities B 应该被分别分配给不同的类,如类 A1 和 A2。


接口隔离原则 (Interface Segregation Principle)

独立于客户端的依赖:一个类与其他类的依赖应基于最小的接口。

这意味着客户端只需要关心所需的接口,而不必关心实现的具体细节。这有助于降低耦合性,提升系统的灵活性。


依赖倒转原则 (Dependence Inversion Principle)

高层模块不应直接依赖底层模块,而是通过抽象层进行交互。

抽象层应控制依赖关系,具体实现留给低层模块。其核心思想是面向接口编程,以确保抽象的稳定性远高于具体实现的多样性。


里氏替换原则 (Liskov Substitution Principle)

一个对象以它的子类型来替代时,系统行为不发生变化。

里氏替换强调,当子类封装时尽量避免重写父类的方法,以确保原有功能不受影响。在适当情况下,可以通过聚合、组合或依赖等方式减少继承带来的耦合性。


开闭原则 (Open Closed Principle)

软件实体(如类、模块、函数)应对扩展开放,对修改关闭。

设想:通过扩展行为而非修改现有代码实现变化。抽象化的框架应为实现留下空间,以支持不同实现的多样化发展。


迪米特法则 (Demeter Principle)

对象间的耦合度应最低。

一个对象对直接的朋友了解,具体包括成员变量、方法参数和返回值中的类。此外,局部变量中的类不应视为直接朋友。通过封装,降低对象之间的相互了解程度。


合成复用原则 (Composite Reuse Principle)

优先通过组合而非继承实现复用。

类或对象之间通过聚合或组合实现高效的代码复用,以构建更大的结构,而不是通过继承层级。这种方法有助于减少耦合性,提升系统复用性。


设计原则的核心思想

  • 识别潜在变化点:将不变的部分与可能变化的部分分离。
  • 面向接口编程:建立在抽象基础上的设计更具稳定性。
  • 追求松耦合设计:通过适当的设计削弱对象间的紧密耦合。
  • 转载地址:http://wkgiz.baihongyu.com/

    你可能感兴趣的文章
    非对称加密算法——SIDH加密算法的深度分析与应用探索
    查看>>
    有了Trae,人人都是程序员的时代来了
    查看>>
    STM8的C语言编程(14)--+PWM
    查看>>
    SpringBoot 学习笔记完整教程4
    查看>>
    【颠覆传统】Android锁屏界面全新重构:深度解析SystemUI横竖屏智能适配秘诀
    查看>>
    Servlet的三个基本方法
    查看>>
    基于Trae AI的新SSH Remote功能:服务器Python接口日志排查实战与技术展望
    查看>>
    反 TypeScript
    查看>>
    微信小程序wx.previewImage实现图片预览
    查看>>
    数据分析与处理方法
    查看>>
    分享下自己总结的Git常用命令
    查看>>
    AIGC在量子计算研究中的应用:算法优化提示词
    查看>>
    三种引流方法&案例分析
    查看>>
    打开有惊喜
    查看>>
    AUTOSAR_SWS_CANDriver4
    查看>>
    Spring高手系列2
    查看>>
    现代前端开发框架对比:React、Vue 和 Svelte 的选择指南
    查看>>
    程序员都看不懂的代码
    查看>>
    LLM+多智能体协作:基于CrewAI与DeepSeek的邮件自动化实践
    查看>>
    404错误页面简约清新源码 非常好看
    查看>>