编程的扇入与扇出

    大家都知道模块化编程,也就是重复代码尽量提炼成函数,自己可以用,别人也可以用,但是提炼出什么样的函数才算好呢?这就要用到扇入与扇出的概念。

    模块的扇出是指本模块的直属下层模块的个数。如图:

模块A的扇出为2,模块B的扇出为3,模块C的扇出为1。一个模块的扇出太大或太小都不好,但是宁可太小也不要太大了。一个函数的扇出太大就意味着它调用了很多其他函数,那么其中任何一个函数修改了都会影响到它,如果下层有函数修改了,而它没有做相应的调整,那么肯定出错,导致维护起来很不方便,也就失去了模块化的根本意义方便性,而我们都知道软件的维护成本是很高的。函数的扇出太小意味着本函数基本没有调用其他下层的函数,如果本函数只有两三句也就不提扇入扇出了,既然提了,那么意味着本函数的模块化并没有做好,有些可以提炼成下层函数的语句没有提炼。一般认为,扇出为3到4比较好,但最大不能超过7。如果一个函数扇出太大,解决方法是适当增加中间函数,一级一级调用。

    模块的扇入是指有多少个上级模块调用它。扇入越大,说明该模块可以被很多的上级模块调用,说明本模块提炼的非常好,这是我们希望的。但是不能为了获得高扇入而把不相关的东西凑成一个模块,这样的模块内聚程度很低,没有任何意义。

    综上所述,我们在设计函数的时候,要设计高扇入合理扇出(3到4)的函数。通俗点就是设计可以被很多函数调用,而它本身调用3到4个下层函数的函数。

 

本文出自 “窈窕魑魅” 博客,谢绝转载!

你可能感兴趣的:(编程,函数,模块,扇入扇出)