23種設計模式的C++實現


之前看Head First設計模式的時候照着書上的代碼實現了一個C++版本(書上是Java版本的),代碼上傳在https://github.com/clpsz/Book-HFDP-Code

當時因為能力有限,沒有直接選擇看GOF的《設計模式:可復用面向對象軟件的基礎》。最近一個月在Windows上寫了點QT的小程序,對C++及設計模式有了點認識,回頭再來看GOF的大作也不覺得有那么的難了。所以抽空把這本書通讀了一遍,雖然書上本來就有些C++的代碼,但是基本上都是基於一個特定的場景的,且很多都不全,因此我就順便把里面所有的模式都寫了一遍並放到Github上去了,地址如下https://github.com/clpsz/GOF-Design-Patterns。所有代碼花了我三天多一點的時間,從周六開始寫,到今天周二早上。

所有代碼都是該模式的Demo版,沒有預設的場景,沒有使用第三方庫,只用到了string,vector,map這幾個STL,因此直接原生C++即可編譯,我的測試環境為Ubuntu 12.04 64bit。

之前一直在做Linux開發,所以對C語言比較熟,直觀的感覺就是C語言好強大,效率高,依賴少,運行容易。最近做了點C++,相對於C而言,執行效率幾乎沒降低,而開發的效率大大提高了。個人感覺我在使用C++的時候,有以下一些非常方便的特性:

  1. 強大的STL可以使用,像vector,string,map等等這些用起來真是太舒服了。
  2. 函數重載真是太方便了,以前為非要起一個不一樣的函數名真是麻煩,有時候還不得不用上foo1等這樣的數字后綴法。
  3. 形參默認值,不經常改變的參數直接加個默認值,方便極了。
  4. 針對接口編程。這個是設計模式的一個重要的原則,通過C++的虛函數可以很好地實現這一點。

感覺以后能用C++的地方都不想再用C了。

歡迎大家針對代碼https://github.com/clpsz/GOF-Design-Patterns提意見,歡迎討論。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM