爲何要學習MFC?

       有些人說,MFC過時了。從某些層面上來講,確實是這樣的。隨便在求職網上一搜,招MFC程序員的很少,並且以工控和圖像處理爲主。工控軟件由於底層爲與硬件打交道的C語言,所以用與C緊密切合的C++語言的類庫MFC來做界面確實很方便。並且工控軟件對界面外觀也沒有什麼要求。所以MFC在工控軟件領域還是佔着一席之地。還有一個領域我們不能忽略,那就是個人軟件、小型軟件。在豬八戒之類的威客網上軟件開發的欄目搜一搜,可以發現大部分的windows程序開發的需求,威客們都是用MFC或Dephi來開發,當然,還有一些易語言。如果你要開發一款個人用的小軟件,MFC是很好的選擇。

對於這種個人軟件、小型軟件,MFC還是有着很多優勢的:

1.體積小,靜態編譯後體積也不大。

2.在各版本的windows上兼容性較好。

3.對windowsAPI的調用較方便。

       學習MFC不僅僅要學習用MFC,還要學習MFC的框架設計思想。如果僅僅會用MFC的話,可能在找工作的時候,一旦工作內容離開了MFC,就什麼也不會了。MFC作爲一個誕生了20年的成熟的框架,其設計思想是很值得我們學習的。粗略讀一讀MFC源代碼就會發現MFC的厲害之處,很多思想都讓人很佩服,有時候看完一段源代碼後,心裏暗自感嘆。無法想象MFC在那個連C++的STL都還沒出現的年代,就用泛型編程技術寫出了CList、CArray、CMap等容器。MFC不僅僅是將面向過程的API封裝爲面向對象的形式,他還在背後做了很多事情,包括簡化一些過程,提高一些穩定性。如果讓我把面向過程的windows socket API封裝成面向對象的類,我肯定會這樣想,嗯,socketAPI幾乎每個函數的第一個參數都是SOCKET結構體,這是面向過程的特點,如果要封裝爲面向對象的類,自然是把這個結構體作爲類的成員變量,然後封裝socketAPI函數爲類的方法,提供大量的默認參數,就OK。實際上並非這樣,讀一讀MFC中CSocket的的源代碼,就會發現實際上並非如此簡單。MFC的CSocket類裏,做了大量的工作,使我們用起來大大的方便了。如果你之前一直用socketAPI來開發網絡程序,再來用MFC的CAsyncSocket和CSocket的話,會覺得,太方便了!仔細讀一讀MFC源碼,真的對我們將來編寫自己的類、設計自己的框架,有很大幫助!

       一個好的程序員,不能只是會用現成類庫的方法。

       一個好的程序員,應該會封裝、會設計類庫、設計框架。

       在一個實際的項目中往往是這樣的:我們需要開發一個windows平臺上的軟件,直接用windowsAPI吧,1.太麻煩2.面向過程的代碼寫的越多越頭疼3.可重用性不強。使用現成類庫吧,有時候無法滿足我們特定的需求。這時候,我們就需要自己動手封裝API,自己動手派生現成類庫中的類,來添加方法。如果你不瞭解類庫,派生下來後就會發現根本無從下手。很多公司在一些做了很久的項目上,往往都是有自己的類庫、自己的框架,並不斷的完善和擴展。這也是我們要學習類庫、框架設計的原因。

發佈了63 篇原創文章 · 獲贊 86 · 訪問量 40萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章