1. 程式人生 > >單一職責原則詳解--七大面向物件設計原則(1)

單一職責原則詳解--七大面向物件設計原則(1)

單一職責原則來源:

        定義:單一職責就是一個類負責一項職責.就一個類而言,應該只專注於做一件事和僅有一個引起它變化的原因。

        所謂職責,我們可以理解為功能,就是設計的這個類功能應該只有一個,而不是兩個或更多。也可以理解為引用變化的原因,當你發現有兩個變化會要求我們修改這個類,那麼你就要考慮撤分這個類了。因為職責是變化的一個軸線,當需求變化時,該變化會反映類的職責的變化。

       單一職責原則,很太簡單。大多數開發人員,在設計軟體時也會自覺的遵守這一重要原則,因為這是常識。在軟體程式設計中,誰也不希望因為修改了一個功能導致其他的功能發生故障。而避免出現這一問題的方法便是遵循單一職責原則。雖然單一職責原則如此簡單,並且被認為是常識,但是即便是經驗豐富的程式設計師寫出的程式,也會有違背這一原則的程式碼存在。為什麼會出現這種現象呢?因為有職責擴散。所謂職責擴散,就是因為某種原因,職責A被分化為粒度更細的職責A1和A2。有時候,需求變更需要我們對一個類做出更細粒度的劃分,這時候就可能破壞之前構思的單一職責的類!

單一職責原則使用總結:

     優點:

(1).消除耦合,減小因需求變化引起程式碼僵化。

(2). 提高類的可讀性,提高系統的可維護性;

(3). 變更引起的風險降低,變更是必然的,如果單一職責原則遵守的好,當修改一個功能時,可以顯著降低對其他功能的影響。