程序導向與物件導向的區別 - w3c菜鳥教程

文章推薦指數: 80 %
投票人數:10人

程序導向與物件導向的區別,1 程序導向procedure oriented programming pop 以事件為中心的程式 ... 缺點:沒有物件導向易維護、易複用、易擴充套件. 程序導向與物件導向的區別 2021-08-2623:16:59字數2251閱讀3492 1.程序導向procedureorientedprogrammingpop 以事件為中心的程式設計思想。

就是分析出解決問題所需的各個步驟,然後用函式把這些步驟按順序實現,並按順序呼叫。

特性:模組化流程化 2.物件導向objectorientedprogrammingoop 把構成問題事務分解成各個物件,建立物件的目的不是為了完成一個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。

特性:抽象封裝繼承多型 以五子棋遊戲為例。

程序導向的設計思路就是首先分析問題的步驟: 開始遊戲, 黑子先走, 繪製畫面, 判斷輸贏, 輪到白子, 繪製畫面, 判斷輸贏, 返回步驟2, 輸出最後結果 把上面每個步驟用不同的方法來實現。

物件導向的設計則是從另外的思路來解決問題。

整個五子棋可以分為: 黑白雙方,這兩方的行為是一模一樣的, 棋盤系統,負責繪製畫面, 規則系統,負責判定諸如犯規、輸贏等。

第一類物件(玩家物件)負責接受使用者輸入,並告知第二類物件(棋盤物件)棋子佈局的變化,棋盤物件接收到了棋子的變化就要負責在螢幕上面顯示出這種變化,同時利用第三類物件(規則系統)來對棋局進行判定。

如果要加一個悔棋功能,程序導向則需要改動很多地方,黑子撤回棋,棋盤變化,然後載繪製,再判斷,可能很多要變化;隨著功能的越來越多,系統無法應付功能需求的規則的複雜而膨脹,最終導致奔潰;但是物件導向只需要得到悔棋命令後,繪製棋盤系統將棋盤重新繪製,呼叫規則系統判定即可,減少了大的改動;保證了物件導向程式的可擴充套件性; 所以從上可以看出,物件導向是以功能來劃分問題,而不是步驟。

物件導向會從巨集觀的角度思考要解決的問題,將問題抽象成一個系統,進而分析系統中相互作用的各個物件,將問題的解決看做的系統中的物件相互作用的結果。

而程序導向則更加“直截了當”,聚焦於某一個特殊問題的解決,用程式語言實現解決問題的方法步驟。

簡言之,程序導向,效率更高;物件導向,通用更好。

1.程序導向 優點:效能比物件導向高,因為類呼叫時需要例項化,開銷比較大,比較消耗資源,比如微控制器、嵌入式開發、linux/unix等一般採用程序導向開發,效能是最重要的因素。

缺點:沒有物件導向易維護、易複用、易擴充套件 2.物件導向 優點:易維護、易複用、易擴充套件,由於物件導向有封裝、繼承、多型性的特性,可以設計出低耦合的系統,使系統更加靈活、更加易於維護 缺點:效能比程序導向低 1、出發點不同 物件導向方法是用符合常規思維的方式來處理客觀世界的問題,強調把問題域的要領直接對映到物件之間的介面上。

程序導向方法則強調的則是過程的抽象化與模組化,它是以過程為中心構造或處理客觀世界問題的。

2、層次邏輯關係不同 程序導向的方法則是用計算機邏輯來模擬客觀世界中的物理存在的,以物件的集合類作為處理問題的單位,儘可能地使計算機世界向客觀世界靠攏,以使問題的處理更清晰直接。

物件導向方法是用類的層次結構來體現類之間的繼承與發展。

程序導向方法處理問題的基本單位是能清晰準確地表達過程的模組,用模組的層次結構概括模組或模組間的關係與功能,把客觀世界的問題抽象成計算機可以處理的過程。

3、資料處理方式與控制程式方式不同 程序導向方法是直接通過程式來處理資料,處理完畢後即可顯示處理的結果,在控制方式上是按照設計呼叫或返回程式,不能自由導航,各模組之間存在著控制與被控制,調動與被呼叫的關係。

物件導向方法將資料與對應的**封裝成一個整體,原則上其他物件不能直接修改其資料,即物件的修改只能由自身的成員函式完成,控制程式方式上是通過“事件驅動”來啟用和執行程式。

4、分析設計與編碼轉換方式不同 程序導向方法強調分析、設計及編碼之間按規則進行轉換貫穿於軟體生命週期的分析、設計及編碼中,實現的是一種有縫的連線。

物件導向方法貫穿於軟體生命週期的分析,設計及編碼中,是一種平滑過程,從分析到設計再到編碼是採用一致性的模型表示,即實現的是一種無縫連線。

程序導向與物件導向不是完全對立的,不是在程式設計的時候必須要選擇某一種思想作為唯一的。

實際問題的解決中,往往是要首先對問題進行分析,建立模型,構建系統,設計物件,具體進行類的設計,這都是物件導向的思想的體現。

而具體到類的設計過程中,具體到類的某一種方法的實現,還是需要程序導向的思想來參考的。

面向功能的度量面向功能的軟體度量是對軟體和軟體開發過程的間接度量。

面向功能度量的注意力集中於程式的功能性和實用性,而不是對loc計數。

該度量是由a... 面向IMS的BREW在網路融合發展趨勢下,3gppetsi和itut都在研究基於ims的網路融合方案,目的是使ims成為基於sip會話的通用平臺,同時支援固... 面向資源與面向活動的Web服務每當一些web應用服務提供方提出允許開發者整合他們的服務的web服務api時,大家都非常關心由api實現的互操作設計模式。

如... 相關推薦 面向的軟體工程 Spring的面向切面AOP 面向訊息的持久通訊與面向流的通訊 面向服務的架構 面向介面的程式設計 相關推薦 面向服務的架構 C語言中的面向對像 3面向字元的輸出流 面向開發者的MaterialDesign railsfind面向SQL的引數 白話淺說TCPUDP面向連線,面向無連線的區別 面向連線的套接字通訊 java面向切面程式設計的例子 面向客戶服務的“十心” 面向客戶的軟體開發 Spring的面向切面程式設計(AOP) 相關閱讀 88合併兩個有序陣列 第一次參加DC比賽總結 resip學習筆記(sip訊息的接收與處理) 程序導向與物件導向的區別 gPythonEunm 裝飾器函式 topic 科技 教育 python 社會 linux 數碼 java c++ 遊戲 演算法 資料庫 健康 文化 mysql 汽車 娛樂 科學 財經 資料結構 C語言 職場 php oracle c# 作業系統 C 工作 體育 網路 sql



請為這篇文章評分?