單一職責原則筆記
以下以類說明單一職責原則(介面,方法同理)
單一職責原則,通俗來說,一個類只負責一項任務。
以前我們用一個類來說明鳥飛行的方式時,先判斷鳥的型別,然後輸出方法。例如以下程式碼:
Bird類
public class Bird {
public void mainMoveMode(String birdName){
if("鴕鳥".equals(birdName)){
System.out.println(birdName+"用腳走");
}else{
System.out.println(birdName+"用翅膀飛");
}
}
}
Test主類
public class Test {
public static void main(String[] args) {
Bird bird = new Bird();
bird.mainMoveMode("大雁");
bird.mainMoveMode("鴕鳥");
}
}
當鳥類的種類少時,可能程式不太緊要。但隨著鳥類的種類數目越來越多時,邊界判斷就越來越大,變更時的風險就越大。
現在將Bird類拆分,分為WalkBird 和FlyBird兩類.
WalkBird類
public class WalkBird {
public void mainMoveMode(String birdName){
System.out.println(birdName+"用腳走");
}
}
FlyBird類
public class FlyBird {
public void mainMoveMode(String birdName){
System.out.println(birdName+"用翅膀飛");
}
}
Test主類
public class Test {
public static void main(String[] args) {
// Bird bird = new Bird();
// bird.mainMoveMode("大雁");
// bird.mainMoveMode("鴕鳥");
FlyBird flyBird = new FlyBird();
flyBird.mainMoveMode("大雁");
WalkBird walkBird = new WalkBird();
walkBird.mainMoveMode("鴕鳥");
}
}
結構圖:
相關文章
- 單一職責原則
- 設計原則之【單一職責原則】
- 單一職責原則詳解
- 設計模式六大原則(一)----單一職責原則設計模式
- 編碼最佳實踐——單一職責原則
- 被誤解的單一職責原則 - Joe
- [譯] 更可靠的 React 元件:單一職責原則React元件
- 單一職責原則在 iOS 中的應用iOS
- 面象物件設計6大原則之一:單一職責原則物件
- 設計模式的七大原則(1) --單一職責原則設計模式
- 嘻哈說:設計模式之單一職責原則設計模式
- 單一職責原則:軟體世界中最重要的規則 - DZone
- 《JavaScript設計模式與開發實踐》原則篇(1)—— 單一職責原則JavaScript設計模式
- 吃透單一職責原則,100倍效果提升程式碼質量
- 將單一職責原則應用於前端FE/BFF分層架構 - Expedia前端架構
- Laravel深入學習8 – 單一責任原則Laravel
- 保持類的單一職責
- 設計模式 - 單一職責設計模式
- SOLID原則筆記Solid筆記
- 領域知識與SOLID單一責任原則的解釋Solid
- 重構 - 保持函式的單一職責函式
- 一起玩轉微服務(7)——單一職責微服務
- S.O.I.L.D 之單一職責
- 依賴倒轉原則--學習筆記筆記
- 23種設計模式(六)單一職責之橋模式設計模式
- MySQL學習筆記:組合索引-最左原則MySql筆記索引
- dba職責
- 正則筆記筆記
- DRY原則的一個簡單實踐
- QA的職責
- C#設計模式學習筆記:設計原則C#設計模式筆記
- 筆記bs,正則筆記
- Oracle DBA的職責Oracle
- 求職招聘渠道筆記求職筆記
- Python學習筆記之 Python設計思想&設計原則Python筆記
- 開閉原則OCP與KISS簡單原則衝突嗎? - macerubMac
- .NET Core TDD 前傳: 編寫易於測試的程式碼 -- 單一職責
- 前端架構的職責前端架構