面向對象與面向程序的區別與優缺點

面向對象以 數據(屬性)爲導向,將具備相同一個或者多個屬性的物體抽象爲「類」,將他們包裝起來;而有了這些數據(屬性)以後,咱們再考慮他們的行爲(對這些屬性進行什麼樣的操做),
面向過程以 功能(行爲)爲導向,按模塊化的設計,在你在腦殼中也許也有一個相似「類」的概念,可是表現出來的是屬性與行爲的分離。
面向過程
定義
面向過程是一種以過程爲中心的編程思想,它是一種基礎的順序的思惟方式,面向對象方法的基礎實現中也包含面向過程思想。面向過程就是分析出解決問題所須要的步驟,而後用函數把這些步驟一步一步實現,使用的時候一個一個依次調用就能夠了。編程

特性:模塊化 流程化模塊化

優勢:性能比面向對象高,由於類調用時須要實例化,開銷比較大,比較消耗資源;好比單片機、嵌入式開發、Linux/Unix等通常採用面向過程開 發,性能是最重要的因素。函數

缺點:沒有面向對象易維護、易複用、易擴展
面向對象
定義
面向對象是按人們認識客觀世界的系統思惟方式,採用基於對象(實體)的概念創建模型,模擬客觀世界分析、設計、實現軟件的辦法。經過面向對象的理念使計算機軟件系統能與現實世界中的系統一一對應。
面向對象是把構成問題事務分解成各個對象,創建對象的目的不是爲了完成一個步驟,而是爲了描敘某個事物在整個解決問題的步驟中的行爲。
特性:抽象 封裝 繼承 多態性能

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

缺點:性能比面向過程低
例如五子棋:
面向過程的設計思路就是首先分析問題的步驟:
一、開始遊戲,   
二、黑子先走,   
三、繪製畫面,   
四、判斷輸贏,   
五、輪到白子,   
六、繪製畫面,
七、判斷輸贏,   
八、返回步驟2,   
九、輸出最後結果。
把上面每一個步驟用分別的函數來實現,問題就解決了。對象

而面向對象的設計則是從另外的思路來解決問題。整個五子棋能夠分爲:
一、黑白雙方,這兩方的行爲是如出一轍的,
二、棋盤系統,負責繪製畫面,
三、規則系統,負責斷定諸如犯規、輸贏等。
能夠明顯地看出,面向對象是以功能來劃分問題,而不是步驟。
例如蓋一座大樓:
你想到的是樓怎麼蓋,哪裏要有柱子,哪裏要有梁,哪裏樓梯等等(這就是面向對象),至於柱子該怎麼建,用什麼建,方的圓的,等等,這就是面向過程。 用面向對象思考問題更符合咱們人的思考方式。 其實咱們人現實生活中都是在面向對象。繼承

看到此處,相信你對於面向對象與面向程序的區別有了更深的瞭解,預祝學業之路成功。
你若決定燦爛,倒影也美得讓人驚歎!-悅遊戲

相關文章
相關標籤/搜索