软件工程

学完了软件工程,不苟妄得多少分,但至少让我发表一下见解吧。

“高内聚,低耦合?” 有点小陷阱

结构化程序设计核心思想之一叫做“高内聚,低耦合”。很直观,模块与模块独立,模块之间保持简单的调用/依赖关系,模块之内完成单一的任务。
不错,你已经明白了其含义。让我画一张图,请问下图模块的内聚与耦合度呢?

你一定会回答,“很明显,耦合度很高,是一个糟糕的设计”。
OK,A 调用 B、C。B 调用 C,C 调用 D。乱七八糟的的确让人感到不愉快。但是,如果让我换个角度看看呢?

请再次回答它的内聚与耦合程度。怎么,耦合度很低?
你有没有觉得,内聚和耦合其实是一回事。那么当我们谈论到“高内聚,低耦合”时,我们在谈论什么呢?
让我再给图上画一个圈,现在我问你,圈内的耦合度与内聚度?
一目了然吧。

好吧,我的观点其实是在讨论内聚与耦合程度时,应以某个界限作为划分,实际上在谈论“模块”这个概念时,就已经有了一条边界了,只不过很容易会忽视掉我们所讨论的对象的性质(之前虽然没有提到但阅读起来毫无违和感对吧?)所以还应该明确,内聚是边界之内,耦合是边界之间

感谢稀稀拉拉的赞赏