第2章 面向物件的設計原則(SOLID):1_單一職責原則(SRP)
阿新 • • 發佈:2018-11-08
1. 單一職責原則(Single Responsibility Principle,SRP)
1.1 單一職責的定義
(1)定義:一個類應該僅有一個引起它變化的原因。這裡變化的原因就是所說的“職責”。
(2)如果一個類有多個引起它變化的原因,也就意味著這個類有多個職責。即把多個職責耦合在一起了。
(3)“職責”的粒度不好量化。實際開發中,這個原則最容易違反
1.2 單一職責的優點
(1)可以降低類的複雜度,一個類只負責一項職責,其邏輯比負責多項職責的要簡單的多
(2)提高類的可讀性,提高系統的可維護性
(3)變更引起的風險降低,變更是必然的,如果單一職責原則遵守的好,當修改一個功能時,可以顯著降低對其他功能的影響。
1.3 案例分析
(1)使用者管理類的設計
①臃腫的介面設計
②職責分離
(2)Rectangle類
①多一個職責的Rectangle類:一個是計算面積,一個是在螢幕上繪製出來。
A.在計算面積的應用程式(Computation Application)中會包含GUI程式碼。
B.當Rectangle類因為要更改GUI顯示方式時,會迫使我們重新構造Computation應用程式。
②職責分離後的Rectangle類
把計算的部分移到GeometryRectangle類中。當改變繪製方式時,不會對Computation應用程式造成影響。