單一職責原則詳解--七大面向物件設計原則(1)
阿新 • • 發佈:2019-01-30
單一職責原則來源:
定義:單一職責就是一個類負責一項職責.就一個類而言,應該只專注於做一件事和僅有一個引起它變化的原因。
所謂職責,我們可以理解為功能,就是設計的這個類功能應該只有一個,而不是兩個或更多。也可以理解為引用變化的原因,當你發現有兩個變化會要求我們修改這個類,那麼你就要考慮撤分這個類了。因為職責是變化的一個軸線,當需求變化時,該變化會反映類的職責的變化。
單一職責原則,很太簡單。大多數開發人員,在設計軟體時也會自覺的遵守這一重要原則,因為這是常識。在軟體程式設計中,誰也不希望因為修改了一個功能導致其他的功能發生故障。而避免出現這一問題的方法便是遵循單一職責原則。雖然單一職責原則如此簡單,並且被認為是常識,但是即便是經驗豐富的程式設計師寫出的程式,也會有違背這一原則的程式碼存在。為什麼會出現這種現象呢?因為有職責擴散。所謂職責擴散,就是因為某種原因,職責A被分化為粒度更細的職責A1和A2。有時候,需求變更需要我們對一個類做出更細粒度的劃分,這時候就可能破壞之前構思的單一職責的類!
單一職責原則使用總結:
優點:
(1).消除耦合,減小因需求變化引起程式碼僵化。
(2). 提高類的可讀性,提高系統的可維護性;
(3). 變更引起的風險降低,變更是必然的,如果單一職責原則遵守的好,當修改一個功能時,可以顯著降低對其他功能的影響。