天天看點

七大面向對象設計原則及其舉例

面向對象設計中常見的設計原則

開閉原則
單一職責原則
裡氏替換原則
依賴倒置原則
接口隔離原則
最少知識原則(迪米特法則)
少用繼承多用組合(合成複用原則)
           

一.開閉原則

定義:一個軟體實體應當對外擴充開放,對内關閉修改,即在設計一個子產品的時候,應當使這個子產品可以在不被修改的前提下可擴充。

作用:(1)隻對擴充代碼進行測試,源代碼依然可以運作。

(2)使代碼具有優質的可擴充性和維護性。

實作方法:可以通過**“抽象限制、封裝變化”**來實作開閉原則,即通過接口或者抽象類為軟體實體定義一個相對穩定的抽象層,而将相同的可變因素封裝在相同的具體實作類中。

舉例:

客戶需要一個減法軟體:客戶——>減法。

然後客戶現在需要加法軟體——>加法(在減法的基礎上将改為加法)。

上述這種做法是錯誤的,違背了開閉原則,對源代碼進行了修改!

七大面向對象設計原則及其舉例

我們應該抽象出一個運算類或者聲明一個運算法則,裡面包括加法或者減法,當然也可以包括其它的!

七大面向對象設計原則及其舉例

這樣我們就不必須更改源碼,隻要實作類或者接口就可以了。這樣我們沒有改變我們的抽象層(限制封裝),同時通過不同子類的繼承或者實作接口來更改需求(封裝變化)!

二.單一職責原則

**定義:**單一職責原則規定一個類應該有且僅有一個引起它變化的原因,否則類應該被拆分成兩個類或者多個類

**優點:**降低了類的複雜度,提高了可讀性和可維護性。

舉例:

現有工作類:包含清理工作和文字工作

根據單子職責原則,我們需要将他們分為:清理類和文字工作類。

三.裡氏替換原則

定義:

繼續閱讀