面向過程與面向對象的區別及優勢和弊端

面向過程與面向對象的區別

面向過程:(Procedure-Oriented Programming(面向過程程序設計),簡記爲POP),一種以過程爲中心的編程思想。

面向對象:(Object Oriented Programming(面向對象程序設計),簡記爲OOP),將相關的數據和方法組織爲一個整體來看待,從更高的層次來進行系統建模,是一種更貼近事物的自然運行模式。

思考:把大象裝進冰箱需要幾步?

面向過程:

步驟是:打開冰箱、把大象裝進冰箱、關閉冰箱

編碼實現:open()、put()、close()

面向對象:

對象:大象、冰箱

編碼實現:elephant、fridge

對象的行爲:大象進冰箱、冰箱打開、冰箱關閉

再以實際情況調整對象行爲的順序:冰箱打開、大象進冰箱、冰箱關閉

編碼實現:fridge.open()、elephant.put()、fridge.close()

總結:

面向過程:把問題分解爲若干個步驟,每個步驟實現爲一個函數,按照順序實現並在調用時傳遞數據給函數解答問題。

面向對象: 抽象出問題的各種對象,把對象的屬性和解決問題的方法封裝在對象中,而後各個對象之間通過行爲實現解答問題。

概念補充:

對象:現實世界中存在的任意一個可以被明確標識的實體。例如上述例子中所講述的:一個冰箱,一隻大象等。

類:具有同種屬性的對象稱爲類,是個抽象的概念。比如“人”就是一類,其中包括小明、小紅、小玲等等這些都是對象,類就相當於一個模具,他定義了它所包含的全體對象的公共特徵和功能,對象就是類的一個實例化,小明就是人的一個實例化!我們在做程序的時候,經常要將一個變量實例化,就是這個原理!我們一般在做程序的時候一般都不用類名的,比如我們在叫小明的時候,不會喊“人,你幹嘛呢!”而是說的是“小明,你在幹嘛呢!”

類的成員主要包括:屬性、方法和構造方法

屬性:對象靜態的一面,如:大象的重量,形狀等都是描述大象的屬性

方法:對象動態的一面,如:大象進冰箱,冰箱的關閉和打開

構造方法:構造方法是一種特殊的方法,專用於構造該類的實例(如實例的初始化、分配實例內存空間等),Java語言通過new關鍵字來調用構造方法,從而返回該類的實例。構造方法的格式:
    權限修飾符 函數名(參數列表){
        函數體;
    }

面向過程與面向對象的優勢與弊端

看了很多文章,發現了一篇將面向過程和麪向對象比喻的十分淋漓盡致地文章,分享給大家~

用面向過程的方法寫出來的程序是一份蛋炒飯,而用面向對象寫出來的程序是一份蓋澆飯。所謂蓋澆飯,北京叫蓋飯,東北叫燴飯,廣東叫碟頭飯,就是在一碗白米飯上面澆上一份蓋菜,你喜歡什麼菜,你就澆上什麼菜。我覺得這個比喻還是比較貼切的。

蛋炒飯製作的細節,我不太清楚,因爲我沒當過廚師,也不會做飯,但最後的一道工序肯定是把米飯和雞蛋混在一起炒勻。蓋澆飯呢,則是把米飯和蓋菜分別做好,你如果要一份紅燒肉蓋飯呢,就給你澆一份紅燒肉;如果要一份青椒土豆蓋澆飯,就給澆一份青椒土豆絲。

蛋炒飯的好處就是入味均勻,喫起來香。如果恰巧你不愛喫雞蛋,只愛喫青菜的話,那麼唯一的辦法就是全部倒掉,重新做一份青菜炒飯了。蓋澆飯就沒這麼多麻煩,你只需要把上面的蓋菜撥掉,更換一份蓋菜就可以了。蓋澆飯的缺點是入味不均,可能沒有蛋炒飯那麼香。

到底是蛋炒飯好還是蓋澆飯好呢?其實這類問題都很難回答,非要比個上下高低的話,就必須設定一個場景,否則只能說是各有所長。如果大家都不是美食家,沒那麼多講究,那麼從飯館角度來講的話,做蓋澆飯顯然比蛋炒飯更有優勢,他可以組合出來任意多的組合,而且不會浪費。

蓋澆飯的好處就是”菜”“飯”分離,從而提高了製作蓋澆飯的靈活性。飯不滿意就換飯,菜不滿意換菜。用軟件工程的專業術語就是”可維護性“比較好,”飯” 和”菜”的耦合度比較低。蛋炒飯將”蛋”“飯”攪和在一起,想換”蛋”“飯”中任何一種都很困難,耦合度很高,以至於”可維護性”比較差。軟件工程追求的目標之一就是可維護性,可維護性主要表現在3個方面:可理解性、可測試性和可修改性。面向對象的好處之一就是顯著的改善了軟件系統的可維護性。

接下來,我將進行相應的總結,希望對你們有幫助。

面向過程

優勢:性能比面向對象高,因爲類調用時需要實例化,開銷比較大,比較消耗資源,比如單片機、嵌入式開發、Linux/Unix等一般採用面向過程開發,性能是最重要的因素。 

弊端:沒有面向對象易維護、易複用、易擴展

面向對象

優勢:易維護、易複用、易擴展,由於面向對象有封裝、繼承、多態性的特性,可以設計出低耦合的系統,使系統更加靈活、更加易於維護 

弊端:性能比面向過程低

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章