模块设计要遵循信息隐藏的原则

软件设计,分为体系结构设计和详细设计(模块设计)两个阶段。体系结构设计就是设计软件系统应由多少模块组成,以及模块间的静态关系、动态关系、接口关系。模块设计则是在此基础之上,设计这些模块的接口(函数),设计模块内的数据结构和算法(如果有)。

模块设计要遵循信息隐藏的原则

那么,怎样的模块设计才是好的设计呢?

好的模块设计,一定要遵循以下设计原则:高内聚、低耦合、信息隐藏。

详细设计,只要能够引导编程就可以了。

假设系统已经分解成为一系列模块了,如何才能把这些模块 设计好呢?人们总结了模块设计的三个基 原则:信息隐藏、高内聚和低耦合。

  1. 高内聚

内聚是一个模块内部各成分之间相关联程度的度量。高内聚的模块内部联系紧密,就像一个无法分割的整体,这样的模块功能单一,模块的实现和维护难度就会大大降低。

2. 低耦合

耦合是模块之间依赖程度的度量。低耦合意味着模块之间的独立性更好,改变一个模块不会影响其它模块。

内聚和耦合是密切相关的,与其他模块存在强耦合的模块通常意味着弱内聚,而强内聚的模块通常意味着与其他模块之间存在弱耦合。

3. 信息隐藏

信息隐藏的意思是让模块仅仅公开必须要让 外界知道的东西,而隐藏其他一切内容。在模块设计的接口设计中,就充分体现了信息隐藏这一原则——接口是模块的外部特征,应当公开;而数据结构、算法、实现体等则是模块的内部特征,应当隐藏。一个模块仅提供有限的接口,接口是模块与外界交互的惟一途径。

如果模块是一个c++类,那么模块的接口就是该类的公有函数。如果模块是一个com对象,那么模块的接口就是com对象的接口。一个com对象可以有多个接口,而每个接口实质上是一些函数的集合。

信息隐藏与高内聚、低耦合这两个原则是一脉相承。它们都体现了模块独立的设计思想。此外,信息隐藏,还蕴含着博大精深的中华文化——秀外而慧中。模块的接口设计追求简洁、高效,小而美,这就是“秀外”;数据结构和算法,这些复杂的设计集中在模块内部,就是“慧中”。

只有遵循这些设计原则,才能做出好的模块设计。

参考书目:《软件工程与项目管理解析》


分享到:


相關文章: