爲什麼設計模式在C++社區沒有Java社區流行?

我們發現設計模式在Java社區很流行,但是在C++社區卻沒有那麼被關注,甚至有點被排斥,究竟是什麼原因造成這個差異的呢?

  (1)C++內存需要自己管理,所以有些模式在C++裏使用不是那麼方便,但是Java不用關心內存,所以在Java裏的使用設計模式有天生的優勢。隨着shared_ptr, weak_ptr, unique_ptr等加入C++11,相信這方面會有所改進。

   (2)在Java的類庫體系中,很多設計本身就是基於設計模式的,所以在調用Java類庫時,你會不知不覺地使用設計模式,這樣導致你在設計自己的接口時也會使用設計模式。

   (3)C++一般被用來解決一些比較底層的問題,所以用C++時,我們更多的關心是如何實現某個feature; 但是Java藉助其豐富的類庫,實現feature往往不是問題,所以他們有更多精力關注設計。

   (4)設計模式一般要間接層,會造成性能的損失,而C++應用的場合往往比較強調性能。對於這個問題,如果你的程序更注重性能(比如內核),確實不應該引入太多間接層;但是如果你的程序更注重可擴充性和可維護性,你就該考慮設計模式了。

   (5)C++社區的很多程序員是從c甚至彙編轉過來的,所以這些人更習慣面向過程的設計方式,即使用C++也只是拿來封裝一些簡單的類,用不到設計模式。

   (6)C++支持多種編程模型,包括面向過程,面向對象,基於對象,泛型編程等,設計模式主要是基於面向對象的,而Java只支持面向對象開發。

    (7)設計模式在比較大型的C++開源項目中用的還是比較多的,比如網絡庫ACE,界面庫QT,遊戲引擎Orge, Irrlicht等


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