面向對象
面向對象 |
面向對象(Object Oriented)是軟件開發方法,一種編程範式。面向對象的概念和應用已超越了程序設計和軟件開發,擴展到如數據庫系統、交互式界面、應用結構、應用平台、分布式系統、網絡管理結構、CAD技術、人工智能等領域。面向對象是一種對現實世界理解和抽象的方法,是計算機編程技術發展到一定階段後的產物。
目錄
簡介
早期的計算機編程是基於面向過程的方法,例如實現算術運算1+1+2 = 4,通過設計一個算法就可以解決當時的問題。隨着計算機技術的不斷提高,計算機被用於解決越來越複雜的問題。一切事物皆對象,通過面向對象的方式,將現實世界的事物抽象成對象,現實世界中的關係抽象成類、繼承,幫助人們實現對現實世界的抽象與數字建模。通過面向對象的方法,更利於用人理解的方式對複雜系統進行分析、設計與編程。同時,面向對象能有效提高編程的效率,通過封裝技術,消息機制可以像搭積木一樣快速開發出一個全新的系統。面向對象是指一種程序設計范型,同時也是一種程序開發的方法。對象是類的具體化實現。它將對象作為程序的基本單元,將程序和數據封裝其中,以提高軟件的重用性、靈活性和擴展性。面向對象的思想已經涉及到軟件開發的各個方面。如,面向對象的分析(OOA,Object Oriented Analysis),面向對象的設計(OOD,Object Oriented Design)、以及我們經常說的面向對象的編程實現(OOP,Object Oriented Programming)。
評價
面向對象是在結構化設計方法出現很多問題的情況下應運而生的。結構化設計方法求解問題的基本策略是從功能的角度審視問題域。它將應用程序看成實現某些特定任務的功能模塊,其中子過程是實現某項具體操作的底層功能模塊。在每個功能模塊中,用數據結構描述待處理數據的組織形式,用算法描述具體的操作過程。面對日趨複雜的應用系統,這種開發思路在下面幾個方面逐漸暴露了一些弱點結構化設計方法所採用的設計思路不是將客體作為一個整體,而是將依附於客體之上的行為抽取出來,以功能為目標來設計構造應用系統。這種做法導致在進行程序設計的時候,不得不將客體所構成的現實世界映射到由功能模塊組成的解空間中,這種變換過程,不僅增加了程序設計的複雜程度,而且背離了人們觀察問題和解決問題的基本思路。另外,再仔細思考會發現,在任何一個問題域中,客體是穩定的,而行為是不穩定的。例如,不管是國家圖書館,還是學校圖書館,還是國際圖書館,都會含有圖書這個客體,但管理圖書的方法可能是截然不同的。結構化設計方法將審視問題的視角定位於不穩定的操作之上,並將描述客體的屬性和行為分開,使得應用程序的日後維護和擴展相當困難,甚至一個微小的變動,都會波及到整個系統。面對問題規模的日趨擴大、環境的日趨複雜、需求變化的日趨加快,將利用計算機解決問題的基本方法統一到人類解決問題的習慣方法之上,徹底改變軟件設計方法與人類解決問題的常規方式扭曲的現象迫在眉睫,這是提出面向對象的首要原因。[1]