物件導向和面向過程

2021-08-21 12:23:31 字數 1666 閱讀 4325

面向過程:是一種以事件為中心的程式設計思想。就是分析出解決問題的步驟,然後用方法(函式)去實現這些步驟,使用的時候按照步驟順序依次呼叫。

物件導向:是一種線性的思維。與面向過程是相輔相成的。物件導向就是將構成問題的事務分解抽象成各個物件。建立物件的目的不是為了完成某個步驟,而是敘述某個事務在整個解決問題的步驟中的行為。

在軟體開發過程中,巨集觀上來說,用物件導向來把握事務間複雜的關係。微觀上,仍然使用面向過程。

面向過程的思維方式是分析綜合。面向兌現的思維方式是構造。

總的來說:

物件導向是將事物高度抽象化。

面向過程是一種自頂向下的程式設計

物件導向必須先建立抽象模型,之後直接使用模型就行了。

面向過程

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

缺點:沒有物件導向易維護、易復用、易擴充套件 

物件導向

優點:易維護、易復用、易擴充套件,由於物件導向有封裝、繼承、多型性的特性,可以設計出低耦合的系統,使系統更加靈活、更加易於維護 

缺點:效能比面向過程低 

面向的物件的三大特徵和五大原則:

三大特徵:

一、封裝

所謂封裝,就是將客觀事物封裝成抽象的類,並且類可以把資料和方法讓可信的類或者物件進行操作,對不可信的類或者物件進行隱藏。類就是封裝資料和操作這些資料**的邏輯實體。在乙個類的內部,某些屬性和方法是私有的,不能被外界所訪問。通過這種方式,物件對內部資料進行了不同級別的訪問控制,就避免了程式中的無關部分的意外改變或錯誤改變了物件的私有部分。

二、繼承

繼承有這樣一種能力,就是能使用現有的類的所有功能,並無須重新編寫原來的這些類的基礎上對這些功能進行擴充套件。通過繼承建立的新類稱為子類或派生類,被繼承的稱為基類。繼承有兩種,一種是實現繼承,另外一種是介面繼承。實現繼承可以直接使用基類的屬性和方法而無需額外編碼,介面繼承是指使用屬性和方法的名稱,但是子必須提供實現的能力。

三、多型

所謂多型就是對乙個例項的相同方法在不同的情形下有不同的表現形式。多型機制使得不同內部結構的物件可以共享相同的外部介面,這就意味著,雖然不同的類的內部操作不同,但可以通過乙個公共的類,它們可以通過相同的方式予以呼叫。

五大原則:

一、單一職責原則

指乙個類的功能要單一,不能包羅永珍。

二、替換原則

指子類可以替換父類並出現在父類能出現的任何地方。

三、開放封閉原則

乙個模組在更改性方面應該是封閉的,在擴充套件性方面應該是開放的。

四、依賴倒置原則

就是要依賴於抽象,不要依賴於具體。簡單的說,就是要對抽象進行程式設計,不要對實現進行程式設計,這樣就降低了客戶與實現模組之間的耦合。

五、介面隔離原則

不同的模組要通過抽象介面隔離開,而不是通過具體的類強耦合。

物件導向和面向過程

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

物件導向和面向過程

物件導向和面向過程的區別 面向過程 更加關注整個程式的實現流程 物件導向 更加關注整個程式中有哪些類,每個類有哪些屬性,有哪些行為,它將整個功能劃分為許多小功能,分散到不同的類中,使用時,僅需命令相應的類完成相應的事情 物件導向的優勢 1.更高的容錯率 2.更易閱讀的 3.更易擴充套件 物件導向的劣...

物件導向和面向過程

面向過程 顧名思義,其中心意義在於 過程 二字,比如你要吃飯,那麼首先是要選地,播種,施肥,成熟,收穫,煮飯,然後才能吃飯,那麼面向過程就是從開始到結束,分析出解決問題的需要的每乙個步驟,然後用函式將這些步驟乙個乙個實現,使用的時候乙個乙個一次呼叫就行了。物件導向 同樣的,你去飯店吃飯的時候,只需要...