知识卡片
组件粒度与DLL地狱警告
内容
把系统拆成组件,既是技术决策也是市场决策——决定了顾客能以多大的颗粒度单独购买和升级某一片软件。但作者提醒要警惕组件粒度切得过细:组件数量一旦太多就会变得难以管理,版本控制问题会格外突出,多个细碎组件之间纵横交错的版本依赖很容易演变成人们常说的DLL地狱。值得一提的是早期UML版本里组件曾被用来表达DLL这类物理结构,现在这个职责已经转交给工件(见部署图一章),组件本身回归到更偏逻辑单元的定位。
参考来源
- 位置:《UML精粹:标准对象建模语言简明指南(第3版)》第14章《组件图》(源文件:_epub-src/EPUB/13.xhtml)
- 结论依据:原文说明"同时也提醒你小心过细粒度的组件,因为太多组件会难以管理,特别是版本控制会昂起它那丑陋的头,导致'DLL地狱'……在早期版本的UML中,组件用于表达物理结构,例如DLL。现在不是这样了,现在使用工件表达物理结构"。
- 原始内容:重要的一点是,组件代表可独立购买和升级的小片。因此,把系统分解成组件,既是市场决定的,也是技术决定的……同时也提醒你小心过细粒度的组件……在早期版本的UML中,组件用于表达物理结构,例如DLL。现在不是这样了,现在使用工件(119页)表达物理结构。