知识卡片

中央控制与分布控制两种协作风格

普通读书笔记卡 · 1943

内容

同一个计算场景可以用两种序列图风格实现:中央控制让一个参与者负责所有处理,其余参与者只提供数据,是对象新手更习惯的方式;分布控制把计算拆给多个参与者各自完成一小块,理解时要追着对象绕圈,却更符合面向对象设计第一原则——把数据和使用数据的行为放在一起,改变的影响因此被局部化,也为用多态替代条件逻辑创造插入点。真正适应分布控制往往需要在强制这样做的OO环境里工作一段时间才能想通。

参考来源

- 位置:《UML精粹:标准对象建模语言简明指南(第3版)》第4章《序列图》(源文件:_epub-src/EPUB/3.xhtml) - 结论依据:原文对比图4.1中央控制与图4.2分布控制两种实现,说明"数据和访问数据的行为经常一起改变。因此,把数据和使用它的行为放在一个地方,是面向对象设计的第一原则",并指出分布控制创造了用多态替代条件逻辑的机会。 - 原始内容:图4.1是中央控制(centralized control),其中一个参与者负责做所有处理,其他参与者只提供数据。图4.2使用分布控制(distributed control),处理分散在许多参与者之间……好的设计的一个主要目标是把改变的影响局部化。数据和访问数据的行为经常一起改变。