設計模式六大原則之一 單一職責原則

2021-10-21 20:07:38 字數 1065 閱讀 6567

單一職責原則(single responsibility principle):對於類來說,乙個類應該只負責一項職責。比如類a負責兩個不同的職責:職責1,職責2。當職責1需求變更而改變a時,可能造成職責2執行錯誤,所以需要將類a的力度分解為a1,a2。

public

class

singleresponsibility1

}class

vehicle

}

很明顯案例一當中的run方法(飛機)違反了單一職責原則

public

class

singleresponsibility2

}class

roadvehicle

}class

airvehicle

}class

watervehicle

}

案例二分析:

​ ① 遵守了單一職責原則

​ ② 這樣實現的方式,改動量很大,需將類分解,而且還需要修改呼叫的客戶端

改進方式:

​ 直接改動原來的vehicle類,參考案例三

public

class

singleresponsibility3

}class

vehicle

public

void

runair

(string vehicle)

public

void

runwater

(string vehicle)

}

案例三分析:

​ ① 這樣修改對類沒有太大的改變,但是增加了方法

​ ② 在類級別上沒有遵循單一職責原則,但是在方法級別上仍然遵守單一職責原則

①降低類的複雜度,乙個類只負責乙個職責。

②提高類的可讀性,可維護性。

③降低變更而引起的風險

④通常情況下,我們應當遵守單一職責原則,只有邏輯足夠簡單,才可以在**級違反單一職責原則;只有類中方法數量足夠少,可以在方法級別保持單一職責原則。

設計模式六大原則 單一職責

不要存在多餘乙個導致類變更的原因。public class animal public class client 如果這個時候新增魚,因為魚只能呼吸水,所以需要修改animal類 public class animal else public class client 這樣做的話,就違背了設計模式的...

設計模式六大原則 單一職責原則

設計模式六大原則 1 單一職責原則 定義 不要存在多於乙個導致類變更的原因。通俗的說,即乙個類只負責一項職責,乙個人只負責做一件事。乙個類,只有乙個引起它變化的原因。應該只有乙個職責。每乙個職責都是變化的乙個軸線,如果乙個類有乙個以上的職責,這些職責就耦合在了一起。這會導致脆弱的設計。當乙個職責發生...

設計模式六大原則(1) 單一職責

只能有乙個職責,例如學生類,他的職責就是學習,他不能越職做不是學生做的事情 主要約束類,其次才是介面和方法,主要針對的是程式中的實現和細節 只能有乙個職責,例如睡覺方法,它的職責就是睡覺,不能同時又包含運動 1 降低類的複雜度,乙個類只負責一項職責,其邏輯肯定要比負責多項職責簡單的多 2 提高類的可...