物件導向與程序導向有什麼本質區別

2022-06-20 16:00:02 字數 3076 閱讀 8228

1樓:zxn雫

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

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

蓋澆飯的缺點是入味不均,可能沒有蛋炒飯那麼香。

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

蓋澆飯的好處就是「菜」「飯」分離,從而提高了製作蓋澆飯的靈活性。飯不滿意就換飯,菜不滿意換菜。用軟體工程的專業術語就是「可維護性」比較好,「飯」 和「菜」的耦合度比較低。

蛋炒飯將「蛋」「飯」攪和在一起,想換「蛋」「飯」中任何一種都很困難,耦合度很高,以至於「可維護性」比較差。軟體工程追求的目標之一就是可維護性,可維護性主要表現在3個方面:可理解性、可測試性和可修改性。

物件導向的好處之一就是顯著的改善了軟體系統的可維護性。

程序導向(op)和麵向物件(oo)是不是就是指編碼的兩種方式呢?不是!你拿到了一個使用者需求,比如有人要找你編個軟體,你是不是需要經過需求分析,然後進行總體/詳細設計,最後編碼,才能最終寫出軟體,交付給使用者。

這個過程是符合人類基本行為方式的:先想做什麼,再想如何去做,最後才是做事情。有的同學說:

「我沒按照你說的步驟做啊,我是直接編碼的」。其實,你一定會經歷了這三個階段,只不過你潛意識裡沒有分得那麼清楚。對於拿到需求就編碼的人,可能編著編著,又得倒回去重新琢磨,還是免不了這些過程,

以oo為例,對應於軟體開發的過程,oo衍生出3個概念:ooa、ood和oop。採用物件導向進行分析的方式稱為ooa,採用物件導向進行設計的方式稱為ood,採用物件導向進行編碼的方式稱為oop。

程序導向(op)和麵向物件(oo)本質的區別在於分析方式的不同,最終導致了編碼方式的不同。

2樓:胡哥有話說

<?php

echo '樓上的說法非常好,令人讚歎啊!!';

?>

知乎 物件導向和麵向過程的區別

3樓:風花樹

知乎使用者

,一個又一個專案。

比如我們要做作業有三道題, 1+1=?, 向量a+向量b=?, 矩陣a+b=?

程序導向,就是寫程式算完第一道, 然後第二道,然後第三道。

物件導向,就是直接抽象出----「廣義加法運算」。「廣義加法運算」: 對於兩個數字,直接相加;對於兩個向量,按照平行四邊形法則相加;對於兩個矩陣,如果行列相同,則對應位置相加。

如果有三十道題,那麼程序導向,需要寫三十個**塊去完成(當然可以優化);物件導向,那麼一個「廣義加法」函式,可以搞定。這就是物件導向的優勢,多型的概念。

當然,定義「廣義加法」 需要一些說明語句,這個可以對於外部隱藏,這就是封裝的概念。

4樓:劉智遠

樓上說法我不是很認同。

我的理解是:物件導向的變成,主要就是類的應用。

當物件只有一個時,這種變成方法似乎沒有很大的優勢。

但是有多個物件時,就能體現出很大的優勢。

如前面所說的加法,我們先按照物件進行分類,包括數字,向量,矩陣然後就有數字.加法,向量.加法,矩陣.加法。這樣命名上也容易

物件導向與程序導向有什麼本質區別?

5樓:匿名使用者

有人這麼形容op和oo的不同:用面

6樓:匿名使用者

物件導向: 舉個例du子,蓋zhi一座大樓,dao你想到的是樓怎麼蓋,**內要有柱子,**要有容樑,**樓梯等等(這就是物件導向),至於柱子該怎麼建,用什麼建,方的圓的,等等,這就是程序導向。 用物件導向思考問題更符合我們人的思考方式。

其實我們人現實生活中都是在物件導向。比如:去飯店吃飯,你只要說明吃什麼就可以了,有必要還了解這個菜是怎麼做的,是**來的,怎麼去種這個菜嗎?

物件導向也可以說是從巨集觀方面思考問題,而程序導向可以說是從細節處思考問題。在物件導向中,也存在程序導向。

7樓:匿名使用者

兩者的一些區別,希望能夠具體點 ,當然也可以舉例子說明

8樓:匿名使用者

物件導向:就像生產機器的零部件

一樣的,如果生產的零部件只能給一家公司用回,則成本增加,答而生產和相關聯的公司用,則成本減少。自己賺取的錢也是很多,這樣是互利互惠的關係

程序導向:則沒有上面得功能,只有區域性的功能,就好比一個是整體和區域性的關係一樣的

什麼是物件導向物件,什麼是程序導向,什麼是物件導向

9樓:楓橋映月夜泊

物件導向技術是一種以物件為基礎,以事件或訊息來驅動對

象執行處理專的程式設計技術。屬它具有抽象性、封裝性、繼承性及多型性。

物件導向與程序導向程式設計有如下不同:

(1)程序導向程式設計方法採用函式(或過程)來描述對資料的操作,但又將函式與其操作的資料分離開來;物件導向程式設計方法將資料和對資料的操作封裝在一起,作為一個整體來處理。 函式與資料是否分離

(2)程序導向程式設計方法以功能為中心來設計功能模組,難於維護;而物件導向程式設計方法以資料為中心來描述系統,資料相對於功能而言具有較強的穩定性,因此更易於維護。

(3)程序導向程式的控制流程由程式中預定順序來決定;物件導向程式的控制流程由執行時各種事件的實際發生來觸發,而不再由預定順序來決定,更符合實際需要。 預定順序;由執行時各種事件的實際發生來觸發

(4)物件導向程式設計方法可以利用框架產品(如mfc,microsoft foundation classes)進行程式設計。 物件導向可利用框架 物件導向和麵向過程的根本差別,在於封裝之後,物件導向提供了程序導向不具備的各種特性,最主要的,就是繼承和多型。

「物件導向"和"程序導向"到底有什麼區別

物件導向程式設計語言與程序導向程式設計語言有什麼區別啊

首先要理解什麼是面向對 抄象程式設計和麵向bai過程編 程。至於語言,面du向物件的語言只是在zhi程序導向語言基dao礎上增加了類和物件的概念 即可以同時封裝資料和函式,例如c 的類 之前程序導向的語言只能封裝資料,例如c的結構體。物件導向的語言和麵向過程有什麼區別啊 一 程式設計思bai想不同 ...

物件導向和麵向過程有什麼區別

程序導向就是分析出解決問題所需要的步驟,然後用函式把這些步驟一步一步實現,使用的時候一個一個依次呼叫就可以了。物件導向是把構成問題事務分解成各個物件,建立物件的目的不是為了完成一個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。例如五子棋,程序導向的設計思路就是首先分析問題的步驟 1 開始遊...

c 是物件導向還是程序導向語言

c語言是程序導向語言。程序導向就是分析出解決問題所需要的步驟,然後用函式把這些步驟一步一步實現,使用的時候一個一個依次呼叫就可以了。物件導向是把構成問題事務分解成各個物件,建立物件的目的不是為了完成一個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。可以明顯地看出,物件導向是以功能來劃分問題...