2009-02-09读书记录——《代码大全》(第一版)第六章——模块化设计

来源:互联网 发布:企业软件正版化 编辑:程序博客网 时间:2024/05/16 16:24

什么是模块?

模块是指数据及作用于数据的子程序的集合。也可以指一系列互相联系功能的子程序集合,而这些子程序之间不一定有公共的数据。

强内聚性而又松散耦合的模块是高质量的模块,减少使用全局变量可以降低程序之间的耦合性。模块中的数据又像全局数据又不是全局数据,它只对模块中的子程序来说,才是可以读取的。(PS:这么像类?!)

需要隐含的信息

(不知道为啥这一节叫这个名字,应该叫隐藏或隐蔽更好一些吧:P)

找到有可能需要改动的地方, 把它们独立到一个模块中。可能变动的区域包括:对硬件有依赖性的地方、输入和输出、非标准语言特性、难于设计和实现的域。其中“非标准语言特性”感觉有点像设计模式中的“Adapter”。其它的一些方面就要仔细的检查代码了,经验多了以后或许就会很方面的将其分离出来了。

原文中有这样一句话“如果用图表来实现一个排序问题。函数 HighestPriorityEvent(),LowestPriorityrEvent()和
NextEvent()是抽象函数,隐含了实现细节;而 FrontOfQueue(),BackOfQueue()和 NextInQueue() 并没有隐含多少细节,因为它们提到了实现,暴露了它们该隐藏的秘密。
”这句话让不太明白,按照前一章所讲的子程序的特点来说,在命名上似乎后者更为恰当。

看到了第四节才证实了我先前想的想法,原来模块在C++中的支持就是类,在C中是结构体(某种意义上也可以说是类)。其它语言不太熟悉,但大概看了一下代码基本上表达的都一样。后面一部分内容看的不太仔细,突然间心里很烦燥,也说不出是为什么,就是看不进去,这一章20几页的篇幅却看了我一个多小时还没看完。不知道是前面没太用心看所有后面有一些不明白,还是由于今天太累了的原因。先到这里吧,以后回过头来的时候再攻克!