知识卡片

客户包放接口

普通读书笔记卡 · 767.c

内容

把需求接口放在客户包中,可以让客户表达自己需要的能力,同时避免依赖具体供应者。这个技巧把依赖方向从“使用实现”转为“实现客户所需契约”,本质上是[[接口隔离实现]]“对接口编程”原则在包级别的应用。

参考来源

- 位置:《UML精粹:标准对象建模语言简明指南》第7章《包图》(源文件:_epub-src/EPUB/6.xhtml) - 结论依据:原文围绕“我们可以在控件包中定义一个接口来避免这个依赖”给出定义、对比或使用限制,说明该概念的含义和适用边界,因此可推出本卡片结论。 - 原始内容:...灯。UI控件需要调用Heater(加热器)上的方法,但我们不想让该控件依赖于Heater。我们可以在控件包中定义一个接口来避免这个依赖,然后这个接口由任何想要和这些控件一起工作的类实现,如图7.5所示。这是一个分离接口模式[Fowler,P of EAA]的例子