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

2021-07-11 13:32:46 字數 856 閱讀 2386

不要存在多餘乙個導致類變更的原因。

public

class animal

}public

class client

}

如果這個時候新增魚,因為魚只能呼吸水,所以需要修改animal類:

public

class animal else

}}public

class client

}

這樣做的話,就違背了設計模式的開放擴充套件,關閉修改原則。所以只能用單一職責模式來解決這個問題:

具有呼吸水職責的類:

public

class aquatic

}

具有呼吸空氣職責的類:

public

class terrestrial

}

public

class client

}

這樣可以不修改原來的**,開放擴充套件,也是單一職責的表現。

1、 降低類的複雜度,乙個類只負責一項職責,其邏輯肯定要比負責多項職責簡單的多

2、 提高類的可讀性,提高系統的可維護性;

3、 降低變更引起的風險

只有邏輯足夠簡單,才可以在**級別上違反單一職責原則;

只有類中方法數量足夠少,才可以在方法級別上違反單一職責原則;

繼承類裡面,虛介面必須要在子類裡重寫,即便只有空函式體,所以需要每個子類都重寫基類方法時才繼承。

介面類裡面,虛介面不需要子類全部重寫,所以子類只部分重寫基類方法的時候,用介面類。

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

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

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

定義 不要存在多於乙個導致類變更的原因。通俗的說,即乙個類只負責一項職責。問題由來 類t負責兩個不同的職責 職責p1,職責p2。當由於職責p1需求發生改變而需要修改類t時,有可能會導致原本執行正常的職責p2功能發生故障。解決方案 遵循單一職責原則。分別建立兩個類t1 t2,使t1完成職責p1功能,t...

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

定義 不要存在多於乙個導致類變更的原因。通俗的說,即乙個類只負責一項職責。問題由來 類t負責兩個不同的職責 職責p1,職責p2。當由於職責p1需求發生改變而需要修改類t時,有可能會導致原本執行正常的職責p2功能發生故障。解決方案 遵循單一職責原則。分別建立兩個類t1 t2,使t1完成職責p1功能,t...