知识卡片

适配器能顺利插入的前提是依赖倒置与里氏替换

普通读书笔记卡 · 1990.a

内容

人力资源系统新增借聘人员管理,只需新增一个适配类就能对接、不改动既有代码,前提是原系统 一开始就严格遵守[[依赖倒置原则的三层含义与Java体现]]和[[里氏替换原则的两种定义]]—— 业务代码依赖接口而非具体类。若原系统当初直接依赖具体类,事后补适配器也无法零改动替换。 发散:适配器能否做到”零改动接入”取决于系统当初的抽象设计是否到位,模式本身不能替代 扎实的基础架构。

参考来源

- 位置:《设计模式之禅(第2版)》第19章《适配器模式》(源文件:_epub-src/text/part0085.html) - 结论依据:原文明确"我们之所以能够增加一个OuterUserInfo中转类,是因为我们在系统设计时严格遵守了依赖倒置原则和里氏替换原则,否则即使增加了中转类也无法解决问题",并展示场景类仅需把`new UserInfo()`改为`new OuterUserInfo()`一行即可完成对接。 - 原始内容:我们之所以能够增加一个OuterUserInfo中转类,是因为我们在系统设计时严格遵守了依赖倒置原则和里氏替换原则,否则即使增加了中转类也无法解决问题……使用了适配器模式只修改了一句话,其他的业务逻辑都不用修改就解决了系统对接的问题。