《好學的C++》“小知識”選摘(三):OOP值得我們去學習嗎

丁曉昀發表於2011-12-05

物件導向概念的起源至少可以回溯到20世紀60年代的Simula語言以及其他一些以資料為核心的程式設計理念。它在20世紀70年代因為Xerox PARC(施樂帕克研究中心,圖形化使用者介面就是在這裡誕生的)的研發團隊推出了Smalltalk語言(一種以獨立物件相互傳送訊息的理念為基礎的程式設計語言)而得到了極大的發展。到了20世紀80年代,這個概念開始大行其道。

在20世紀90年代早期,OOP成為了一直延續至今的標準。Bjarne Strousup把OOP和流行的C語言結合在一起建立了C++。Pascal和Basic語言也有了物件導向的擴充套件包。從那時起,C#和Java等新的程式設計語言不斷湧現。發展到現在,程式設計師已經無法離開它了。 可是,OOP真的可以幫你編寫出更有效率的程式嗎?在一些人竭盡全力倡導每個人都應該物件導向的同時,也有一些人在質疑這種做法。反對者的論點是,OOP並不能減少程式設計工作量,你無論如何還是要編寫同樣數量的程式碼和資料。

但有以下幾個事實是誰也無法否認的。

GUI(graphical user interface,圖形化使用者介面)系統已經主宰了這個世界。儘管你不使用OOP語言也可以為這樣的系統編寫程式,但OOP和GUI似乎是“天生一對”。從概念上講,它們是彼此高度相容的理念,它們都出自Xerox PARC。

有越來越多的程式碼和資料被打包為OOP形式。如果你想利用類似Microsoft Foundation Class(MFC,用於Windows程式設計)或C++ Standard Template Library(STL)等開發工具庫帶來的便利,除了掌握物件導向的基本語法以外沒有任何其他的選擇。

綜上所述,拒絕OOP顯然是不現實的。就像我將在第16章裡演示的那樣,等你學會使用STL庫的時候,你將受益良多。

相關文章