遵循單一職責原的優點有:
- 可以降低類的複雜度,一個類只負責一項職責,其邏輯肯定要比負責多項職責簡單的多;
- 提高類的可讀性,提高系統的可維護性;
- 變更引起的風險降低,變更是必然的,如果單一職責原則遵守的好,當修改一個功能時,可以顯著降低對其他功能的影響。
需要說明的一點是單一職責原則不只是面向對象編程思想所特有的,只要是模塊化的程序設計,都適用單一職責原則。
定義:一個類只負責一項職責
問題由來:類T負責兩個不同的職責 職責p1 職責p2, 當職責p1需要修改類T時,有可能導致原本正常運行功能的職責p2功能運行失敗
解決方案:遵循單一原則, 分別建立兩個類T1、T2,使T1完成p1功能, T2完成p2功能,這樣修改T1時,不會使職責p2發生故障風險,同理,當修改T2時,也不會使職責p1發生故障風險
職責擴散; 所謂職責擴散是指 因爲某種原因,職責P被分散成粒度更細的職責p1和p2