周瑤
【摘要】面向對象方法已深入到計算機軟件領域的幾乎所有分支。它不僅是一些具體的軟件開發技術與策略,而且是一整套關于如何看待軟件系統與現實世界的關系,用什么觀點來研究問題并進行問題求解,以及如何進行軟件系統構造的軟件方法學。本文就面向對象方法產生的背景以及發展現狀進行了簡要敘述。
【關鍵詞】面向對象 程序設計 發展史 UML
1 面向對象特征概述
面向對象設計是一種把面向對象的思想應用于軟件開發過程中,指導開發活動的系統方法,是建立在“對象”概念基礎上的方法學。對象是由數據和操作組成的封裝體,與客觀實體有直接對應關系,一個對象類定義了具有相似性質的一組對象。面向對象程序設計具有抽象性、封裝性、繼承性和多態性等特征。
抽象:指從事物中舍棄個別的、非本質的特征,而抽取共同的、本質特征的思維方式。
封裝:將數據和代碼捆綁到一起,避免了外界的干擾和不確定性。對象的某些數據和代碼可以是私有的,不能被外界訪問,以此實現對數據和代碼不同級別的訪問權限。
繼承:讓某個類型的對象獲得另一個類型的對象的特征。通過繼承可以實現代碼的重用:從已存在的類派生出的一個新類將自動具有原來那個類的特性,同時,它還可以擁有自己的新特性。
多態:指一般類和特殊類可以有相同格式的屬性或操作,但這些屬性或操作具有不同的含義,即具有不同的數據類型或表現出不同的行為。
2 面向對象設計方法發展歷史
在這里把面向對象方法的發展分為三個階段:雛形階段、完善階段和繁榮階段。
(一)雛形階段
1967年挪威計算中心的Kisten Nygaard和Ole Johan Dahl開發了Simula67語言,首先引入了類的概念和繼承機制,它是面向對象的先驅。1972年Palo Alno研究中心(PARC)發布了Smalltalk-72,其中正式使用了“面向對象”這個術語。Smalltakl的問世標志著面向對象程序設計方法的正式形成。
可以說出現了面向對象語言之后,面向對象思想才得到了迅速的發展。過去的幾十年中,程序設計語言對抽象機制的支持程度不斷提高:從機器語言到匯編語言,到高級語言,直到面向對象語言。匯編語言出現后,程序員就避免了直接使用0-1,而是利用符號來表示機器指令,從而更方便地編寫程序;當程序規模繼續增長的時候,出現了Fortran、C、Pascal等高級語言,這些高級語言使得編寫復雜的程序變得容易,程序員們可以更好地對付日益增加的復雜性。
(二)完善階段
PARC先后發布了Smalltalk-72、76和78等版本,直至1981年推出該語言完善的版本Smalltalk-80。Smalltalk-80的問世被認為是面向對象語言發展史上最重要的里程碑。迄今絕大部分面向對象的基本概念及其支持機制在Smalltalk-80中都已具備。它是第一個完善的、能夠實際應用的面向對象語言。但是隨后的Smalltalk-80的應用尚不夠廣泛,其原因是:
追求純OO的宗旨使得許多軟件開發人員感到不便。
一種新的軟件開發方法被廣泛地接受需要一定的時間。
針對該語言的商品化軟件開發工作到1987年才開始進行。
(三)繁榮階段
從20世紀80年代中期到90年代,是面向對象語言走向繁榮的階段。其主要表現是大批比較實用的面向對象編程語言的涌現,例如C++、Objective-C、Object Pascal、CLOS、Eiffel和Actor等。這些面向對象的編程語言分為純OO型語言和混合型OO語言。混合型語言是在傳統的過程式語言基礎上增加了OO語言成分形成的,在實用性方面具有更大的優勢。此時的純OO型語言也比較重視實用性。現在,在面向對象編程方面,普遍采用語言、類庫和可視化編程環境相結合的方式,如Visual C++、JBuilder和Delphi等。面向對象方法也從編程發展到設計、分析,進而發展到整個軟件生命周期。
到20世紀90年代,面向對象的分析與設計方法已多達數十種,這些方法都各有所長。目前,統一建模語言已經成為世界性的建模語言,適用于多種開發方法。把UML作為面向對象的建模語言,不但在軟件產業界獲得了普遍支持,在學術界影響也很大。在面向對象的過程指導方面,目前還沒有國際規范發布。當前較為流行的用于面向對象軟件開發的過程指導有“統一軟件開發過程”(RUP)和國內的青鳥面向對象軟件開發過程指導等。
3 面向對象設計方法應用現狀
當前,面向對象方法幾乎覆蓋了計算機軟件領域的所有分支。例如,已經出現了面向對象的編程語言、面向對象的分析、面向對象的設計、面向對象的測試、面向對象的維護、面向對象的圖形用戶界面、面向對象的數據庫、面向對象的數據結構、面向對象的智能程序設計、面向對象的軟件開發環境和面向對象的體系結構等。此外,許多新領域都以面向對象理論為基礎或作為 主要技術,如面向對象的軟件體系結構、領域工程、智能代理、基于構件的軟件工程和面向服務的軟件開發等。
4 結語
計算機軟件技術的發展日新月異,在很短的時間內即涌現出了大量的軟件開發工具并迅速地更新換代,給編程人員進行程序設計帶來了極大的方便。在不久的將來相信面向對象程序設計技術必將應用到更多的程序中。
【參考文獻】
[1] 麻志毅,著.面向對象分析與設計.機械工業出版社,2013,2.
[2] 格雷厄姆(Ian Graham,I.)著,袁兆山,譯. 面向對象方法:原理與實踐.機械工業出版社,2003,3.