1. 程式人生 > >第2章 面向物件的設計原則(SOLID):1_單一職責原則(SRP)

第2章 面向物件的設計原則(SOLID):1_單一職責原則(SRP)

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應用程式造成影響。