当前位置: 首页 > news >正文

深入解析:【设计模式笔记03】:里氏代换原则和依赖倒置原则

深入解析:【设计模式笔记03】:里氏代换原则和依赖倒置原则

文章目录

      • 三、 里氏代换原则 (LSP)
        • 1. 定义
        • 2. 历史渊源
        • 3. 作用与意义
      • 四、 依赖倒置原则 (DIP)
        • 1. 定义
        • 2. 模块层次理解
        • 3. 遵循DIP的设计
        • 4. 对定义的深入理解

三、 里氏代换原则 (LSP)

1. 定义
2. 历史渊源
  • 里氏代换原则由Barbara Liskov于1988年提出。
  • Barbara Liskov 是2008年图灵奖得主,美国第一位计算机科学女博士,麻省理工学院教授。
3. 作用与意义

在这里插入图片描述

由于子类型的可替换性才使得父类型的模块在无需修改的情况下就能够扩展

在这里插入图片描述


四、 依赖倒置原则 (DIP)

1. 定义
2. 模块层次理解
  • 低层模块: 不可分割的原子逻辑,例如一些基础的类或手段。
  • 高层模块: 对低层模块进行组合和调用的复杂逻辑。
  • 传统依赖关系 (违反DIP): 高层模块直接依赖(调用)低层模块。这种设计下,一旦低层模块发生变化,高层模块也必须随之修改,系统极其不稳定。

在这里插入图片描述

3. 遵循DIP的设计

在这里插入图片描述

如图展示了正确的依赖关系。高层模块依赖于中间的抽象层,而低层模块也依赖于(达成)抽象层。高层与低层之间凭借抽象层解耦。

4. 对定义的深入理解
  • “抽象不应该依赖于细节,细节应该依赖于抽象”:

    • 抽象 (接口或抽象类): 是相对稳定的,不应该直接依赖于可能经常变化的具体完成(细节)。
    • 细节 (具体实现类): 应该去实现(或继承)抽象,遵循抽象定义的规范。
    • 代码层面: 接口或抽象类不能直接 new 实例化;细节(实现类)可以直接 new 实例化。
    • 依赖抽象暗示着多种对象的可能性(多态)。
    • 依赖细节暗示着单一对象,缺乏灵活性。
  • “要针对接口编程,不要针对实现编程”:

    • 这句话是依赖倒置原则的最佳实践。
    • 在程序代码中,我们定义的变量、方法参数、返回值类型等,应尽量使用接口或抽象类,而不是具体的建立类。
    • 这样做的好处是,当我们需要更换具体实现时,只需更换new一个新实现类的部分,而调用方的代码完全不需要改动,从而实现了对开闭原则的支持。
http://www.jsqmd.com/news/351331/

相关文章:

  • 宣和:以创新与品质成为智能麻将机行业领军标杆 - 速递信息
  • BISHI13 九倍平方数
  • 【课程设计/毕业设计】基于python的酒店预订管理系统在线管理、预订、入住和结算python基于Web的酒店住宿管理系统的设计与实现【附源码、数据库、万字文档】
  • 冲锋衣生产源头厂家常见问题解答(2026专家版) - 速递信息
  • 【收藏必看】深入理解Transformer架构:大模型优化的关键与代码实现详解
  • Qwen3-32B大模型vLLM启动建议
  • CANN调试与可视化:从黑盒训练到透明洞察的实战指南
  • 【收藏】LangChain从入门到实战:大模型应用开发完全指南 | 程序员必学
  • CANN性能调优:从瓶颈定位到极致优化的实战指南
  • Python毕设项目:基于python的租房管理系统的设计与实现(源码+文档,讲解、调试运行,定制等)
  • AI写作助手对比测评:Notion AI vs Jasper vs Copy.ai
  • 数据不够用?别急着骂业务,数据增强和合成数据真能救命
  • qwen3-32b的maxToken设置建议
  • CANN模型转换:跨框架模型的无缝迁移与优化实战
  • Python毕设项目:python基于Web的酒店住宿管理系统的设计与实现(源码+文档,讲解、调试运行,定制等)
  • C++错误 “tolower”: 不是“std”的成员
  • Python计算机毕设之python基于协同过滤算法的天气穿搭推荐系统Python基于深度学习的服装搭配智能推荐系统(完整前后端代码+说明文档+LW,调试定制等)
  • 【深度收藏】大模型训练全解析:从“博览群书“到“步入社会“的AI进化之路
  • Python计算机毕设之基于python的酒店宾馆住宿管理系统python基于Web的酒店住宿管理系统的设计与实现(完整前后端代码+说明文档+LW,调试定制等)
  • 软件功能测试机构选择指南:山东省标杆检测机构 中承信安
  • 【收藏】Skill:AI的“工作手册“,让大模型应用开发更简单
  • 宏智树AI|告别论文内耗!新手也能轻松拿捏期刊写作全流程
  • 【计算机毕业设计案例】python基于Web的民宿酒店公寓管理系统的设计与实现(程序+文档+讲解+定制)
  • 一天一个开源项目(第14篇):CC Workflow Studio - 可视化AI工作流编辑器,让AI自动化更简单
  • 宏智树 AI:论文双重合规通关秘籍,降重降 AIGC 一次搞定
  • 宏智树AI封神!学术PPT不用熬:开题/答辩/汇报一键解锁专业逻辑
  • Python毕设项目推荐-基于django/Flask的 去中心化知识图谱系统基于Python的去中心化知识图谱系统的设计与实现【附源码+文档,调试定制服务】
  • 计算机Python毕设实战-python基于协同过滤算法的生活建议天气服装衣物穿搭推荐系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 从石油工程到机器学习:一位科学家的跨界转型之路
  • 【强烈收藏】AI智能体实战:构建、协作与工程化落地完全指南