66

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

 6 years ago
source link: https://mp.weixin.qq.com/s/kaU679rlR8iE81ukEZiMfQ
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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

Original 王小双 软件工程之思 2017-10-31 23:00 Posted on

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

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

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

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

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

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

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

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

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

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

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

这些设计原则,都有着美的内涵。如果你能遵循这些“美的”设计原则,你就能做出好的模块设计。

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

微信赞赏专用通道

Image

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK