主要观点:设计较大系统时需将其分解为子系统或模块,模块相对独立且协作以实现系统功能,软件设计中模块还应信息隐藏并提供公共接口。关键问题是设计系统时应将其分解为少量大模块还是许多小模块,本能认为合并两个模块比拆分一个模块容易,但实际上这种本能答案是错误的。
重要细节:拆分模块时,两个逻辑模块会在一个物理模块中纠缠,拆分困难在于它们相互期望访问内部;合并模块时,物理模块应合并为逻辑模块,但兄弟模块可能期望处理其外部接口,合并后这些接口变为内部,与拆分模块情况相似;拆分大模块只需处理两个模块相互访问内部,而合并小模块时可能有无数合作者期望触及合并模块内部;作者主张开始时将系统分解为尽可能少的模块,这样犯错成本低,且设计较少交互可减少出错机会,复杂系统中交互易出现严重问题。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。