LinuxAid.com.cn 01-06-13 15:53 330p axing
我们来为内聚性举一些例子,重点强调如何把其他的内聚性转换成功能内聚性。当然,把各种各样的子程序加以分类仅仅只是出于研究的用处,在实践中花大力气去区分每个子程序是那一种内聚类型是毫无意义的,下面的例子只是建议你在设计子程序的时候就要充分考虑如何把子程序写得更好一些,也就是如何做到功能内聚。 图中画阴影的部分是由原来的子程序从事的工作,在新组织结构中它们位于不同的层次上,这就是为什么为了把这些工作放人恰当的子程序中,要进行这么多重新组织工作的原因。用几个功能内聚性的子程序来代替一个具有不良内聚性的子程序是很平常的。 在实践中,我们会遇到各种各样内举类型的子程序,除了功能内聚型以外,任何类型的子程序都可以通过增加层次的方式来把它分为几个功能内聚型的子程序,例如上面逻辑内聚型的例子,在把功能分给几个功能子程序后,在功能之上增加了一个控制的程序。这是典型的非面向对象语言(如C语言)的做法,而在面向对象语言中(如C++、JAVA),可以通过重载、接口等技术来实现。 |