我眼中的物件導向

2021-08-28 19:56:38 字數 1007 閱讀 7923

我眼中的物件導向

面向過程

物件導向

我要充話費 -> 用支付寶

女朋友要充話費 -> 給我打**

我餓了 -> 用美團外賣

女朋友餓了 -> 給我打**

引例動作:撰寫一篇部落格,發布部落格到**

對於面向過程 撰寫、發布是兩個事件,形成函式並依次呼叫

對於物件導向 部落格可以抽象為一種文章,不關心具體實現(例項化),只關心這個抽象概念的一系列行為

本質相對來說,面向過程是分析出解決問題所需的步驟

對於物件導向,是描述其在整個解決問題的步驟中的行為,而不在於完成某個步驟

物件導向的核心,我認為就是多型,把不同物件以同一特性來歸組,統一處理

從程式構成的角度說

程式 = 演算法 + 資料結構

用物件導向的思想改造後

程式 = 基於物件操作的演算法 + 以物件為最小單位的資料結構

資料結構上的封裝導致了資料資料的減少,即減少了問題求解的複雜度

同時由於類的抽象、分層,事件的完成邏輯更加清晰、容易實現

容器與stl的出現,更體現了資料抽象的這一概念

最後,物件導向所提倡的「高內聚、低耦合」更是大大提高了程式的可維護性。

此外,陳皓老師提到:

對於:oop 的本質就是——對資料和與之關聯的行為進行程式設計,是不完全準確的

因為

sometimes data is just data and functions are just functions.

陳皓老師認為,物件導向最注重的是

資料和其行為的打包封裝

程式的介面和實現的解耦。

我認為陳皓老師指的也是上文所述

關於物件導向中多型的底層原理,請參考 博文 c++ 多型物件模型/虛繼承物件模型

談談程式設計基礎知識,我眼中的物件導向

物件導向有3個特徵 封裝 繼承 多型 封裝 所謂的封裝,就是我們對欄位,方法,屬性的許可權定義,公開,保護,私有這些都體現了封裝的特性 繼承 第一種繼承 泛化 首先我們可以解釋一下什麼叫做泛化 泛化,舉個例子就是人,可以泛化為男人和女人。所以,簡單的繼承就是乙個人類,有五官屬性和五官字段,男人類繼承...

我,眼中的詩歌

我,眼中的詩歌 給我一杯茶,乙個幽靜的地方,我好看些詩歌。寫前面 詩歌是一種態度。詩歌是燕子低低地飛過屋簷。詩歌是古代西方 盛行的決鬥。詩歌是人類本身一直都存在的 極為樸素的一種本能。詩歌和性別無關 和身材無關,和你曾看過多少書也沒有直接的 聯絡,造物主將嘴巴賦予人類的同時 也賦予了人類詩歌。詩歌是...

我眼中的委託

首先委託是乙個型別,和int string一樣,我們日常說的委託其實是委託型別的變數,委託的作用就是把方法當成引數來傳遞,將方法賦值給委託型別的變數,然後由這個變數去呼叫執行方法。換個方式,委託沒有具體實現體,因為委託就是叫別人去辦事,自己當然不需要實現了,但是委託別人必須要清楚自己想辦什麼事,這個...