【敏捷软件开发 原则、模式与实践】第十到十二章读书笔记

Liskov 替换原则(LSP)

  • 定义

    子类型必须能够替换掉它们的基类型。也就是说:若类型 S 是类型 T 的子类,在所有针对 T 编写的程序 P 中,用类型 S 的对象 o1 替换类型 T 的对象 o2 能够使程序 P 的行为功能保持不变。

  • LSP 解决了什么问题

    LSP 要求的子类可替换性使得使用基类类型的模块在无需修改的情况下得以扩展。LSP 是使 OCP 成为可能的主要原则之一。

依赖倒置原则(DIP)

  • 定义

    1. 高层模块不依赖于底层模块,二者都应该依赖于抽象。

    2. 抽象不应该依赖于细节,细节应该依赖于抽象。

    注:抽象为客户所需要的服务。

  • DIP 解决了什么问题

    1. 使得高层模块独立于底层模块,能够非常容易地被重用。DIP 是框架设计的核心原则。

    2. 使得代码易于维护。

  • 如何实现

    • 任何变量都不应该持有一个指向具体类的指针或引用。
    • 任何类都不应该从具体诶派生。
    • 任何方法都不应该覆写它的任何基类中的已经实现了的方法。

接口隔离原则(ISP)

  • 定义

    一个接口类中的所有方法应该是类聚的,不含有它们所服务的客户程序所不需要的方法。

  • ISP 解决了什么问题

    解除类客户程序和它们没有调用的方法间的依赖关系,并使客户程序间互不依赖。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前言 springmvc 是一个标准的 MVC Web 层框架,由一个前端控制器 DispatchServlet(...
    张光光阅读 12,415评论 1 12
  • 人生不相见,动如参与商
    yaisizjdnhx阅读 1,801评论 0 0
  • 春天春花美
    笃学青衿阅读 1,535评论 0 0
  • 上个周末回家 积压了一些任务没完成 终于到今晚差不多搞定 忙完感觉超棒!所以现在躺下 听着1988里面的插曲 刷手...
    胖纯阅读 1,801评论 0 0

友情链接更多精彩内容