跳到主要内容

函数的扇入和扇出

定义

  • 函数扇入:一个函数被其它函数调用的次数,称为该函数的扇入。一个函数的扇入越大,说明该函数的复用性越好。
  • 函数扇出:一个函数调用其它函数的次数,称为该函数的扇出。扇出越大,设计该函数时需要考虑的问题就越多,因而复杂性就越高。

程序中函数的扇入数目尽量多,扇出数目不宜大多。

建议

  • 扇出越大说明函数的效率越高,但不能违背函数间的独立性而单纯地追求高扇入。
  • 扇入越大说明该函数的功能越复杂,需要控制和协调过多的下级函数。
  • 扇出过小,如总是 1,表明函数的调用层次可能过多, 这样不利程序阅读和函数结构的分析, 并且程序运行时会对系统资源如堆栈空间等造成压力。
  • 函数较合理的扇出(调度函数除外)通常是 3-5。扇出太大,一般是由于缺乏中间层次,可适当增加中间层次的函数。扇出太小,可把下级函数进一 步分解多个函数,或合并到上级函数中。当然分解或合并函数时,不能改变要实现的功能, 也不能违背函数间的独立性。

较良好的软件结构通常是:顶层函数的扇出较高,中层函数的扇出较少,而底层函数则扇入到公共模块中。