快速理解 SOLID (面向對象設計)——單一職責原則

快速理解 SOLID (面向對象設計)——單一職責原則

在程序設計領域, SOLID(單一功能、開閉原則、里氏替換、接口隔離以及依賴反轉),指代了面向對象編程和麪向對象設計的五個基本原則。當這些原則被一塊兒應用時,它們使得一個程序員開發一個容易進行軟件維護和擴展的系統變得更加可能。

1. 單一職責原則

1.1 單一職責原則 的定義

不要存在多於一個致使類變動的緣由。簡單的講,認爲對象應該僅具備一種單一功能。java

1.2 單一職責原則 解決了什麼問題

類A 負責兩個職責P1職責P2。當因爲職責P1需求發生改變時,而須要在類A中修改職責P1。有可能使本來正常運行的職責P2發生故障。程序員

1.3 單一職責原則 舉個例子

//不符合 單一職責原則
public class UserService {
    // ...增長 User 功能
    // ...刪除 User 功能
    // ...更新 User 功能
    // ...查詢 User 功能
    
    // ...User 登陸功能
}

上面這個UserService類能夠看做有兩個職責:編程

  1. 對 User 數據的操做。
  2. 對 User 驗證。

根據單一職責原則應該將這兩個職責分別放在兩個類中:微信

//符合 單一職責原則
public class UserDataService {
    // ...增長 User 功能
    // ...刪除 User 功能
    // ...更新 User 功能
    // ...查詢 User 功能
}
public class UserAuthService {
    // ...User 登陸功能
}

1.4 單一職責原則 的優勢

  • 下降類的複雜度,一個類只負責一種職責。
  • 提升代碼的可讀性。
  • 下降更改需求帶來的風險,下降對其餘功能的影響。

2. 關注個人微信公衆號,查看更多文章,第一時間收到個人文章。

歡迎關注個人微信公衆號:lxiao學習日記

SOLID (面向對象設計)——單一職責原則,你學會了嗎?學習

相關文章
相關標籤/搜索