1. 程式人生 > >面向物件設計原則(一)——單一職責原則

面向物件設計原則(一)——單一職責原則

單一職責原則定義(Single Responsibility Principle,SRP)

一個物件應該只包含 單一的職責,並且該職責被完整地封裝在一個類中。

Every  Object should have  a single responsibility, and that responsibility should be entirely encapsulated by the class..

就一個類而言,應該僅有一個引起它變化的原因。

There should never be more than one reason for a class to change.

單一職責原則分析

一個類(或者 大到模組,小到方法)承擔的職責越多,它被複用的可能性就越小,而且如果一個類承擔的職責過多,就相當於將這些職責耦合在一起,當其中一個職責變化時,可能會影響其他職責的運作。

類的職責主要包括兩個方面:資料職責和行為職責,資料職責通過其屬性來體現,而行為職責通過其方法來體現。

單一職責原則是實現 高內聚、低耦合 的指導方針,在很多程式碼重構手法中都能找到它的存在,它是最簡單但又最難運用的原則,需要設計人員發現類的不同職責並將其分離,而發現類的多重職責需要設計人員具有較強的分析設計能力和相關重構經驗。

應用例項

登入功能 Login:

使用單一職責原則對其進行重構: