閱讀945 返回首頁    go 阿裏雲 go 技術社區[雲棲]


C++編程規範之33用小類代替巨類

摘要:

    分而治之:小類更易於編寫,更易於保證正確、測試和使用。小類更有可能適用於各種不同的情況。應該用這種小類體現簡單概念,不要用大雜燴式的類,它們要體現的概念既多又複雜。

    設計花哨的大類,是剛開始進行麵向對象設計時常犯的典型錯誤。能夠畢其功於一役,讓一個類提供完整和複雜的功能,當然是很誘人的。但是,設計易於組合的更小的、盡量小的類,才是實踐中更為成果的方法,這對任何係統都適用,原因為:

    1.      小的類隻體現了一個概念,粒度層次恰到好處。而巨類則很可能體現了幾個不同的概念,使用這樣的類將增加他人的腦力消耗。

    2.      小的類更易於理解,被人理解和被人重用的可能性也越大。

    3.      下的類更易於部署。而巨類必須經常以一個笨重而又不可分的單位來部署。

    4.      巨類會削弱封裝性。如果類有許多不需要成為成員的成員函數(因為類的私有實現存在不必要的可見性),那麼類的私有數據成員將變得與公用變量幾乎一樣糟糕。

    5.      居類通常是因為試圖預測和提供完整的問題解決方案而出現的,實踐中,這種類從來都沒有真正成功過。人們的需求總是在變化的,有事需要更多,有時又想要更少。

    6.      巨類更難保證正確和錯誤安全,因為它們經常要應付多種職責。

最後更新:2017-04-03 12:53:51

  上一篇:go MOM係列文章之 - Spring Jms Integration 解讀
  下一篇:go C++編程規範之27:使用算術操作符和賦值操作符的標準形式