- C++面向對象程序設計(第三版)
- 陳維興 林小茶
- 1611字
- 2019-10-25 14:55:28
1.2.2 面向對象程序設計的主要優點
面向對象程序設計方法是軟件開發史上一個里程碑。這種方法從根本上改變了人們以往設計軟件的思維方式,從而使程序設計者擺脫了具體的數據格式和過程的束縛,將精力集中于要處理對象的設計和研究上,極大地減少了軟件開發的復雜性,提高了軟件開發的效率。面向對象程序設計主要具有以下幾個優點:
1.面向對象程序設計可提高程序的重用性
重用是提高軟件開發效率最主要的方法,面向過程程序設計的重用技術是利用標準函數庫,但是標準函數庫缺乏必要的“柔性”,不能適應不同應用場合的需要,庫函數往往僅提供最基本的、最常用的功能,在開發一個新的軟件系統時,通常大部分函數仍需要開發者自己編寫,甚至絕大部分函數都是新編的。
面向對象程序設計能比較好地解決軟件重用的問題。對象所固有的封裝性和信息隱藏等機理,使得對象內部的實現與外界隔離,具有較強的獨立性,它可以作為一個大粒度的程序構件,供同類程序直接使用。
面向對象程序設計可以重復使用一個對象類,可以像使用集成電路(IC)構建計算機硬件那樣,比較方便地重用對象類來構造軟件系統,因此有人把對象類稱為“軟件IC”。
2.面向對象程序設計可控制程序的復雜性
面向過程程序設計忽略了數據和操作之間的內在聯系,它把數據與其操作分離,于是存在使用錯誤的數據調用正確的程序模塊,或使用正確的數據調用錯誤的程序模塊的風險。使數據和操作保持一致,控制程序的復雜性,是程序員一個沉重的負擔。面向對象程序設計采用了數據抽象和信息隱藏技術,把數據及對數據的操作放在一個個類中,作為相互依存、不可分割的整體來處理。這樣,在程序中任何要訪問這些數據的地方都只需簡單地通過傳遞信息和調用方法來進行,這就有效地控制了程序的復雜性。
3.面向對象程序設計可改善程序的可維護性
用面向過程程序設計語言開發出來的軟件很難維護,是長期困擾人們的一個嚴重問題,是軟件危機的突出表現。但是,面向對象程序設計方法所開發的軟件可維護性較好。在面向對象程序設計中,對于對象的操作只能通過消息傳遞來實現,所以只要消息模式即對應的方法界面不變,方法體的任何修改不會導致發送消息的程序修改,這顯然給程序的維護帶來了方便。另外,類的封裝和信息隱藏機制使得外界對其中的數據和程序代碼的非法操作成為不可能,這也大大減少了程序的錯誤率。
4.面向對象程序設計能夠更好地支持大型程序設計
在開發一個大型系統時,應對任務進行清晰的、嚴格的劃分,使每個程序員了解自己要做的工作以及與他人的接口,使每個程序員可以獨立地設計、調試自己負責的模塊,以使各個模塊能夠順利地應用到整個系統中去。
類是一種抽象的數據類型,所以類作為一個程序模塊,要比通常的子程序的獨立性強得多,面向對象技術在數據抽象和抽象數據類型之上又引入了動態連接和繼承性等機制,進一步發展了基于數據抽象的模塊化設計,使其更好地支持大型程序設計。
5.面向對象程序設計增強了計算機處理信息的范圍
面向對象程序設計方法模擬人類習慣的解題方法,代表了計算機程序設計新穎的思維方法。這種方法把描述事物靜態屬性的數據結構和表示事物動態行為的操作放在一起構成一個整體,完整地、自然地表示客觀世界中的實體。
用類來直接描述現實世界中的類型,可使計算機系統的描述和處理對象從數據擴展到現實世界和思維世界的各種事物,這實際上大大擴展了計算機系統處理的信息量和信息類型。
6.面向對象程序設計能很好地適應新的硬件環境
面向對象程序設計中的對象、消息傳遞等思想和機制,與分布式、并行處理、多機系統及網絡等硬件環境也恰好吻合。面向對象程序設計能夠開發出適應這些新環境的軟件系統。面向對象的思想也影響計算機硬件的體系結構,現在已在研究直接支持對象概念的面向對象計算機。這樣的計算機將會更適合于面向對象程序設計,更充分地發揮面向對象技術的優勢。
由于面向對象程序設計的上述優點,我們看到,面向對象程序設計是目前解決軟件開發面臨難題的最有希望、最有前途的方法之一。
- JSP網絡編程(學習筆記)
- 嵌入式軟件系統測試:基于形式化方法的自動化測試解決方案
- Java系統分析與架構設計
- OpenCV實例精解
- JIRA 7 Administration Cookbook(Second Edition)
- Java高手真經(高級編程卷):Java Web高級開發技術
- Rake Task Management Essentials
- MySQL 8 DBA基礎教程
- Responsive Web Design with HTML5 and CSS3
- Java程序設計:原理與范例
- Ext JS 4 Web Application Development Cookbook
- 網站構建技術
- 基于ARM Cortex-M4F內核的MSP432 MCU開發實踐
- 開源項目成功之道
- Clojure for Machine Learning