單一職責原則(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 提高類的可...