知识卡片
领域连接器充当绝缘装置
内容
病人监护系统需把传感器数据(体温、心跳)转换成分级警报——这是两个不同领域,把转换逻辑放进传感器组件或警报组件都会让该组件混入另一领域的知识,破坏内聚性。更好的做法是把两个领域间的转换代码放进连接器,让连接器充当绝缘装置,阻止一个领域细节渗透进另一领域组件,每个组件只需理解自己那一领域。副作用是好的:写这段跨领域代码时,反而更容易发现”传感器意外脱落”这类容易忽略的边界情况。
参考来源
- 位置:《恰如其分的软件架构》第12章《模型元素》12.4节《连接器》(源文件:_epub-src/OEBPS/text00117.html)
- 结论依据:原文用Michael Jackson的病人监护系统为例,说明把传感器与警报两个领域间的转换逻辑放进连接器能让组件各自保持领域绝缘,并指出构建连接器时更容易发现"传感器断开"这类容易被忽视的边界事件。
- 原始内容:连接器就像一个绝缘装置,阻止领域细节从一个组件渗透到另一个组件……如果你构建的只是一个向监护组件提供原始数据的简单连接器,很容易就会忽视传感器断开这个概念……如果你让连接器做一些实际的工作,结果会使连接器和领域都受益。