編程的扇入與扇出

    大家都知道模塊化編程,也就是重複代碼儘量提煉成函數,自己可以用,別人也可以用,但是提煉出什麼樣的函數纔算好呢?這就要用到扇入與扇出的概念。

    模塊的扇出是指本模塊的直屬下層模塊的個數。如圖:

模塊A的扇出爲2,模塊B的扇出爲3,模塊C的扇出爲1。一個模塊的扇出太大或太小都不好,但是寧可太小也不要太大了。一個函數的扇出太大就意味着它調用了很多其他函數,那麼其中任何一個函數修改了都會影響到它,如果下層有函數修改了,而它沒有做相應的調整,那麼肯定出錯,導致維護起來很不方便,也就失去了模塊化的根本意義方便性,而我們都知道軟件的維護成本是很高的。函數的扇出太小意味着本函數基本沒有調用其他下層的函數,如果本函數只有兩三句也就不提扇入扇出了,既然提了,那麼意味着本函數的模塊化並沒有做好,有些可以提煉成下層函數的語句沒有提煉。一般認爲,扇出爲3到4比較好,但最大不能超過7。如果一個函數扇出太大,解決方法是適當增加中間函數,一級一級調用。

    模塊的扇入是指有多少個上級模塊調用它。扇入越大,說明該模塊可以被很多的上級模塊調用,說明本模塊提煉的非常好,這是我們希望的。但是不能爲了獲得高扇入而把不相關的東西湊成一個模塊,這樣的模塊內聚程度很低,沒有任何意義。

    綜上所述,我們在設計函數的時候,要設計高扇入合理扇出(3到4)的函數。通俗點就是設計可以被很多函數調用,而它本身調用3到4個下層函數的函數。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章