物件導向的三大特徵和六大原則

2021-10-04 17:52:17 字數 1406 閱讀 8959

具體解釋

通常認為封裝就是把資料和運算元據的方法繫結起來,對資料的訪問只能通過已定義的介面。物件導向的本質就是將現實世界描繪成一系列完全自治,封閉的物件。我們在類中編寫的方法就是對實現細節的一種封裝;我們編寫乙個類就是對資料和資料操作的封裝。可以說,封裝就是隱藏一切可隱藏的東西,只向外界提供最簡單的編成介面

繼承就是子類繼承父類的特徵和行為,使得子類物件(例項)具有父類的例項域和方法,或子類從父類繼承方法,使得子類具有父類相同的行為。子類可以擴充套件自己的方法。

同乙個物件在不同的時刻體現出來的不同狀態

多型的實現方式:1.重寫和過載;2.介面;3.抽象類和抽象方法。

所謂的「多型」,簡單的理解就是物件在不同情況下的不同表現,具體體現在定義和功能兩個方面,簡單的總結一下,多型可以用「三個定義和兩個方法」來總結。三個定義分別是父類定義子類構建、介面定義實現類構建和抽象類定義實體類構建,而兩個方法分別是方法過載和方法重寫。

抽象就是將一類物件的共同特徵總結出來構造類的過程,包括資料抽象和行為抽象兩方面。抽象只關注物件有哪些屬性和行為,並不關心這些行為的細節是什麼。

預設情況下物件導向對大特徵為繼承,封裝,多型

總結在我們設計的時候要盡量保持開放-封閉原則。對於增加需求等情況要盡量擴充套件而不要對類進行修改,避免因為修改而造成不必要的麻煩。開放封閉原則是所有物件導向原則的核心。

單一職責原則就是乙個類只負責乙個職責,僅有乙個引起它變化的原因。降低類的耦合。

如果乙個類承擔的職責過多,就等於把這些職責耦合在一起,乙個職責的變化就有可能使軟體的各個方面都收到影響,無疑這樣是非常糟糕的。如果乙個類具有多餘乙個的職責,就應該考慮類的分離。

乙個軟體實體如果使用的是乙個父類的話,那麼一定使用於其子類,而且它察覺不出父類物件和子類物件的區別。也就是說在軟體裡面,把父類都替換成它的子類,程式的行為沒有變化。

也正是因為這個原則,使得繼承復用稱為可能,只有當子類可以替換點父類,軟體單位的功能不受到影響時,父類才能真正的被復用,而子類也能在父類的基礎上增加新的行為。黎克特制代換原則是實現開放封閉原則的具體規範。這是因為實現開放封閉原則關鍵是抽象,而繼承關係又是抽象的一種具體實現。

這個原則的意思是:使用多個隔離的介面,比使用單個介面要好。也就是說,盡量建立多個單一介面,而不是乙個臃腫龐大的介面。它還有另外乙個意思是:降低類之間的耦合度。由此可見,其實設計模式就是從大型軟體架構出發、便於公升級和維護的軟體設計思想,它強調降低依賴,降低耦合。

盡量使用合成/聚合,盡量不要使用類繼承。優先使用物件的合成/聚合將有助於你保持每個類被封裝,並被集中在單個任務上。這樣類和類繼承層次會保持較小規模,並且不太可能增長為不可控制的龐然大物。

如果兩個類不必彼此直接通訊,那麼這兩個類就不應當發生直接的相互作用。如果其中乙個類需要呼叫另乙個類的某乙個方法的話,可以通過第三者**這個呼叫。迪公尺特法則的根本思想是強調了類之間的松耦合。

OOP 物件導向的三大特徵和六大原則

oop object oriented programming,物件導向的程式設計。一切事物皆物件,通過物件導向的方式,將現實世界的事物抽象成物件,現實世界中的關係抽象成類 繼承,幫助人們實現對現實世界的抽象與數字建模 而物件即是對類封裝後的例項化,可以呼叫類物件和方法。通過物件導向的方法,更利於用...

物件導向 六大原則

舉乙個簡單的例子,登入功能。一般登入需要包括幾個基本的功能 1.登入頁面 2.接受使用者輸入 3.提交使用者輸入資料到服務端驗證 4.返回驗證結果並提示給使用者 按照單一原則我們就可以將登入功能拆分成兩個類,登入頁類和網路請求類。其實因為單一原則並不是很容易劃分,很多時候需要根據個人經驗和實際情況 ...

物件導向六大原則

先來看物件導向的六大原則吧 一 單一職責原則 二 開閉原則 三 黎克特制替換原則 四 依賴倒置原則 五 介面隔離原則 六 迪公尺特原則class imageloader 就像上面的 一樣我們把所有功能寫到乙個類中,隨著我們專案越來越大功能也越來越大,會導致這個類很龐大也很脆弱。這時候可以拆分出來每個...