1. 程式人生 > >面向物件和麵向過程有什麼區別

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

以前學C語言和C++時提到過面向物件與面向過程,但是因為當時程式設計少,沒什麼經驗,對它們的區別僅僅停留在字面上,其實壓根沒有明白。

最近被問:面向物件和麵向過程的區別? 細想下,其實我真的不知道它們是什麼區別。回去看了看書,查找了一些資料,再聯絡最近所做的程式設計,寫一些我的理解,僅供參考。

面向過程是圍繞功能進行的,為每一個功能寫一個函式,需要考慮其中的每一個細節,以步驟劃分,可以這麼比喻

                                    面向過程的程式=演算法+資料結構

而面向物件則像是組裝,先確定一個系統是由哪些物件組成,再分別去設計這些物件,將它們像零件一樣組裝起來形成有完整功能的系統,以功能劃分,相當於

                                 物件=演算法+資料結構

                              面向物件的程式=N個物件+控制資訊

 面向物件和麵向過程的區別   就像是面向過程程式只用函式實現,而面向物件程式是用類實現各個功能模組。

有人這麼比喻:

   “如五子棋,面向過程的設計思路就是首先分析問題的步驟:1、開始遊戲,2、黑子先走,3、繪製畫面,4、判斷輸贏,5、輪到白子,6、繪製畫面,7、判斷輸贏,8、返回步驟29、輸出最後結果。把上面每個步驟用不同的方法來實現。

如果是面向物件的設計思想來解決問題。面向物件的設計則是從另外的思路來解決問題。整個五子棋可以分為

1、黑白雙方,這兩方的行為是一模一樣的,2、棋盤系統,負責繪製畫面,3、規則系統,負責判定諸如犯規、輸贏等。第一類物件(玩家物件)負責接受使用者輸入,並告知第二類物件(棋盤物件)棋子佈局的變化,棋盤物件接收到了棋子的變化就要負責在螢幕上面顯示出這種變化,同時利用第三類物件(規則系統)來對棋局進行判定。”

相關推薦

Java面向物件和麵過程什麼區別?網友:傻傻分不清楚……

面向物件,Obeject Oriented,是一種程式設計術語。面向物件是當今軟體開發方法的主流方法之一,他是把資料以及對資料的操作放在一起,作為一個相互依存的整體,就是我們所說的物件。對同類物件抽象出其共性,就是類,類中的大多數資料,只能被本類的方法進行處理。類通過一個簡單的外部介面與外界發生關係

面向物件和麵過程什麼區別

以前學C語言和C++時提到過面向物件與面向過程,但是因為當時程式設計少,沒什麼經驗,對它們的區別僅僅停留在字面上,其實壓根沒有明白。 最近被問:面向物件和麵向過程的區別? 細想下,其實我真的不知道它們

面向物件和麵過程區別

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

什麼是面向物件 什麼是面向過程 面向物件和麵過程區別

轉自http://blog.163.com/[email protected]/blog/static/83583263201131611916893/ 面向過程就是分析出解決問題所需要的步驟,然後用函式把這些步驟一步一步實現,使用的時候一個一個依次呼叫就可以

Python基礎-面向物件和麵過程程式設計區別

前言 OOP,是一種程式設計思想。OOP把物件作為程式的基本單元,一個物件包含了資料和操作資料的函式。哈哈哈,學Python、Java的人表示很開心。 面向過程的程式設計 把計算機程式視為一系列的命令集合,即一組函式的順序執行。為了簡化程式設計,面向過程把

關於初學者如何理解面向物件和麵過程區別以及java中的類和物件

首先java是一門面向物件的程式語言,特別是當你剛入門C語言的同時又進行java語言的學習,這個問題就體現出來了。C語言是面向過程的程式語言,它們兩種語言處理問題的方式是不一樣的。 面向過程的程式語言的設計思路按步驟走的,你需要手把手的教它。例如上課鈴響了,學

C/C++ 面向物件和麵過程區別

C語言實現程序管理&add #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include<string.h> #include<windows.h> //面向過程的

關於面向物件和麵過程本質的區別(個人感悟)

前言:   接觸面向物件的概念也差不多兩年了,對於面向物件也有著自己的一些感悟,期間也看到過面向過程的一些文章,但總是對於兩種思想沒有明確的區別概念,剛好今天在某篇部落格上看到對於兩者的區別。所以便寫下這篇部落格來記錄下感悟。    一、面向物件的特點    什麼是物件,簡單來說物件就是現實世界存在的

[18/11/23]面向物件和麵過程

1、區別與聯絡  面向過程(C和C++): 關心的是“怎麼按步驟實現?”   並將步驟對應成方法,一步一步,最終完成。 這個適合簡單任務(通俗講:就是不需要過多協作的情況下)。          如:如何開車?  (

我眼中的-php之面向物件和麵過程程式設計

作為一位有趣又有靈魂開發者,每天可能都在處理著大量的業務邏輯,你的狀態可能每天是這樣的,請看下圖: 這樣擼程式碼固然很爽,可是你考慮過隊友的感受? 隨著時間的推移,專案的不斷迭代,團隊的不斷壯大,同時專案的複雜度也在成正比不斷增加。        通常一個專案基於成

Python 面向物件和麵過程對比

# 大象裝冰箱 # 指令碼, 此時程式碼是最簡單的. 不需要構思整個程式的概況 print("開門") print("裝大象") print("關門") # 函數語言程式設計. 比指令碼麻煩. 對功能有了概況. def kai(): print('開門') def zhuang():

通俗易懂理解java面向物件和麵過程

什麼是面向物件和麵向過程面向過程與面向物件都是我們程式設計中,編寫程式的一種思維方式。1)面向過程的程式設計方式,是遇到一件事時,思考“我該怎麼做”,然後一步步實現的過程。例如:公司打掃衛生(擦玻璃、掃地、拖地、倒垃圾等),按照面向過程的程式設計方式會思考“打掃衛生我該怎麼做

java面向物件和麵過程對比

總結: 1.都是解決問題的思維方式,都是程式碼組織的方式; 2.解決簡單問題可以使用面向過程; 3.解決複雜問題:巨集觀上使用面向物件,微觀處理上仍然是面向過程; 分述: 面向過程適合簡單,不需要協作的事物。 但是當我們思考比較複雜的問題,比如“如何造車?”,就會

面相物件和麵過程區別

(1)借用一本書裡的比喻寫程式就好像是在看電視用面向過程就等於是要先自己製造一臺電視,然後再收看節目;而面向物件則是直接去商店買一臺電視收看。面向物件程式設計省去了很多不需要知道的部分,就好比即使你不清楚如何製造電視機,也能看電視一樣。(2)面向物件的資料是封裝在物件內部,

static的作用,在面向物件和麵過程中的應用

 在C語言中,static的字面意思很容易把我們匯入歧途,其實它的作用有三條。 (1)先來介紹它的第一條也是最重要的一條:隱藏。 當我們同時編譯多個檔案時,所有未加static字首的全域性變數和函式都具有全域性可見性。為理解這句話,我舉例來說明。我們要同時編譯兩個原始檔,一

淺談面向物件和麵過程

面向過程:就是將要實現一個功能所需要的步驟一步一步的寫出來出來,要做到面面俱到、有條不絮。   例如:在JavaScript如果需要在頁面當中插入一個DOM元素。按照面向過程的設計方法就是: var div = document.createElement(“div”);

面向物件和麵過程

面向物件 面向對像(Object Oriented,簡稱OO)是一種程式開發方式,是一種以事物為中心的程式設計思想。面向物件的方法主要是把事物給物件化,物件包括屬性與行為.他將物件作為程式的基本單位,將程式和資料封裝在其中,以提高軟體的靈活性,重用性和擴充套件

python·面向物件和麵過程

面向物件和麵向過程理解 面向過程和麵向物件都是用來解決問題的,只是解決問題的思路不同 面向過程可以理解為親力親為,在程式中面向過程程式設計就是函式之間的一個相互呼叫,一函式為基本結構使用 面對物件可以理解為坐享其成,在程式中面向物件程式設計是以物件為機構為機構使用。 類: 是對一群具有相同特

PHP面向物件和麵過程

先看網上一個比較有意思的回答: 面向物件,一定要面向物件,沒有物件就沒有老婆,沒有老婆就沒有小孩,沒有小孩就沒有未來…… 你要不是為了未來,就不用找物件, 如果只是簡單的搞搞,可以找馬子…… 把馬子/釣凱子,都是面向過程的,過程一結束,馬子就不存在了,就好像你每

面向物件和麵過程到底是怎麼回事?

今天下午在一個組的專案回顧會議上,這個同事講了自己用DDD思想對三個模組的重構。把之前在Service層的一些業務邏輯下沉到了領域層裡,由之而引起的討論。 部門經理:“其實你的業務邏輯總體並沒有少,只是把邊界重新劃分了一下。” 一起參與開發的同事:“在第二個模組中(任務系統,包括了任務拆分,狀態跟蹤等)這種思