java物件的六大原則

2021-09-08 04:55:50 字數 1531 閱讀 7998

物件的六大原則:

1.單一職責原則(single responsibility principle  srp)

2.開閉原則(open close principle ocp)

3.黎克特制替換原則(liskov substitution principle lsp)

4.依賴倒轉原則(dependence inversion principle  dip)

5. 介面隔離原則(inte***ce segregation principle  isp)

6.迪公尺特原則 (least knowledge principle  lkp)

單一職責原則:

乙個類盡量只有乙個職責(相關),兩個完全不一樣的功能就不應該放在乙個類中,通過不斷審視自己的**,根據具體的業務,功能對類進行相應的拆分。

開閉原則:

軟體中的物件(類、模組、函式等)應該對於擴充套件開放,對於修改是封閉的。

程式一旦開發完成,程式中的乙個類的實現只因錯誤而被修改,新的或者改變的特性應該通過新建不同的類來實現,新建的類可以通過繼承的方式來重用原類的**。

eg:抽象為介面,對於擴充套件,新增類來實現。

黎克特制替換原則:

1.如果對每乙個型別為s的物件o1,都有型別為t的物件o2,是的以t定義的所有程式p在所有的獨享o1都換成o2,程式p的行為沒有發生變化,那麼型別s是型別t的子型別。

2.所有引用積累的地方必須能透明地使用其子類的物件。

物件導向語言的三大特點:資料抽象(封裝)、繼承、多型

黎克特制替換原則依賴於繼承、多型。通俗來說:只要父類能出現的地方子類就可以出現,而且替換為子類也不會產生任何錯誤或者異常,但反過來就未必能行,有子類出現的地方,父類未必就能適應。將父類使用的地方替換為子類,事項多型。這就是黎克特制替換原則。

依賴倒轉原則:

指代一種特定的解耦形式,使高層次的模組不依賴於低層次的模組的實現細節的目的。

1.高層模組不應該依賴底層模組,兩者都應該依賴其抽象。

2.抽象不應該依賴細節。

3.細節應該依賴抽象。

抽象:指介面或者抽象類

細節:實現類,實現介面或者繼承抽象類而產生的類就是細節,特點:可以直接被例項化

也就是說,模組間的依賴通過抽象發生,實現類之間不發生直接的依賴關係,其依賴關係是通過介面或者抽象類來實現,依賴抽象而不依賴具體實現,這就是依賴倒轉原則。

介面隔離原則:

顧名思義,在設計類時,我們需要將各種介面隔離,使用最少的介面,類間的依賴關係應該建立在最小的介面上。他的目的就是:系統解開耦合,從而容易重構,更改和重新部署。

迪公尺特原則:

乙個物件應該對其他物件有最少了解,這個原則的提出也是為了降低耦合度的,便於整個系統維護,公升級等等。

類與類之間的關係越密切,耦合度越大,乙個類發生改變時,對另乙個類的影響也就越大, only talk to your immedate friends  只於直接的朋友通訊。

其實這六大原則,總的來說,目的都是一樣:降低耦合性,便於維護,擴充套件。

當然,我們在程式設計的時候不能老是想著這六大原則,從而限制了我們的思維。需要通過大量實踐讓我們來把這六大原則融會貫通。

物件導向 六大原則

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

物件導向六大原則

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

物件導向六大原則

引用一段經典的話,武學的最高境界是無招勝有招 在程式設計領域,設計模式就可以認為是招數,而真正的內功心法是設計原則 下面講述一下程式設計中應該遵循的基本原則 乙個類只負責一種職責,只有這種職責的改變會導致這個類的變更。繞口一點的正統說法 不要存在多於乙個原因導致類變更 假如 類t 負責有兩種職責 p...