面向過程和面向對象編程的優缺點


【1】面向過程和面向對象的比較

網上發現了一篇文章,說了一下OP與OO的不同,並且打了一個比喻,通俗易懂。

有人這么形容OP和OO的不同:用面向過程的方法寫出來的程序是一份蛋炒飯,而用面向對象寫出來的程序是一份蓋澆飯。

所謂蓋澆飯,北京叫蓋飯,東北叫燴飯,廣東叫碟頭飯,就是在一碗白米飯上面澆上一份蓋菜,你喜歡什么菜,你就澆上什么菜。我覺得這個比喻還是比較貼切的。

  

蛋炒飯制作的細節,我不太清楚,因為我沒當過廚師,也不會做飯,但最后的一道工序肯定是把米飯和雞蛋混在一起炒勻。

蓋澆飯呢,則是把米飯和蓋菜分別做好,你如果要一份紅燒肉蓋飯呢,就給你澆一份紅燒肉;如果要一份青椒土豆蓋澆飯,就給澆一份青椒土豆絲。

  

蛋炒飯的好處就是入味均勻,吃起來香。如果恰巧你不愛吃雞蛋,只愛吃青菜的話,那么唯一的辦法就是全部倒掉,重新做一份青菜炒飯了。

蓋澆飯就沒這么多麻煩,你只需要把上面的蓋菜撥掉,更換一份蓋菜就可以了。蓋澆飯的缺點是入味不均,可能沒有蛋炒飯那么香。

  

到底是蛋炒飯好還是蓋澆飯好呢?其實這類問題都很難回答,非要比個上下高低的話,就必須設定一個場景,否則只能說是各有所長。

如果大家都不是美食家,沒那么多講究,那么從飯館角度來講的話,做蓋澆飯顯然比蛋炒飯更有優勢,他可以組合出來任意多的組合,而且不會浪費。

  

蓋澆飯的好處就是“菜”“飯”分離,從而提高了制作蓋澆飯的靈活性。飯不滿意就換飯,菜不滿意換菜。

用軟件工程的專業術語就是“可維護性”比較好,“飯”和“菜”的耦合度比較低。

蛋炒飯將“蛋”“飯”攪和在一起,想換“蛋”“飯”中任何一種都很困難,耦合度很高,以至於“可維護性”比較差。

軟件工程追求的目標之一就是可維護性,可維護性主要表現在3個方面:可理解性、可測試性和可修改性。面向對象的好處之一就是顯著的改善了軟件系統的可維護性。

 

【2】面向對象開發的優點

1、易維護。采用面向對象思想設計的結構,可讀性高,由於繼承的存在,即使改變需求,那么維護也只是在局部模塊,所以維護起來是非常方便和較低成本的。

2、質量高。在設計時,可重用現有的,在以前的項目的領域中已被測試過的類使系統滿足業務需求並具有較高的質量。

3、效率高。在軟件開發時,根據設計的需要對現實世界的事物進行抽象,產生類。使用這樣的方法解決問題,接近於日常生活和自然的思考方式,勢必提高軟件開發的效率和質量。

4、易擴展。由於繼承、封裝、多態的特性,自然設計出高內聚、低耦合的系統結構,使得系統更靈活、更容易擴展,而且成本較低。

 

【3】面向對象的特點

1、利用特定軟件直接從對象客體的描述到軟件結構的轉換。

2、解決了傳統結構化方法中客觀世界描述工具與軟件結構的不一致性。

3、減少了從系統分析、設計到軟件模塊結構之間的多次轉換映射的繁雜過程。

 

【4】C++語言的優點

1、是一種全新的系統分析設計方法(對象、類、結構屬性、方法)。

2、適用於各類信息系統的開發。

3、實現了對客觀世界描述到軟件結構的直接轉換 ,大大減少后續軟件開發量。

4、開發工作的重用性、繼承性高,降低重復工作量。

5、縮短了開發周期。

 

【5】C++語言的缺點

1、需要一定的軟件支持環境。

2、不太適宜大型的MIS開發,若缺乏整體系統設計划分,易造成系統結構不合理、各部分關系失調等問題。

3、只能在現有業務基礎上進行分類整理,不能從科學管理角度進行理順和優化。

4、初學者不易接受、難學。

 

 

Good  Good  Study, Day  Day  Up.

順序  選擇  循環  總結


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM