單一職責原則筆記
以下以類說明單一職責原則(介面,方法同理)
單一職責原則,通俗來說,一個類只負責一項任務。
以前我們用一個類來說明鳥飛行的方式時,先判斷鳥的型別,然後輸出方法。例如以下程式碼:
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("鴕鳥");
}
}
結構圖:
相關文章
- 單一職責原則
- 設計原則之【單一職責原則】
- 單一職責原則詳解
- 一 :SRP(單一職責原則)
- 物件導向設計原則之單一職責原則物件
- 設計模式筆記:單一職責原則(SRP, Single Responsibility Principle)設計模式筆記
- 設計模式六大原則(一)----單一職責原則設計模式
- 被誤解的單一職責原則 - Joe
- 編碼最佳實踐——單一職責原則
- 設計模式六大原則(1):單一職責原則設計模式
- 單一職責原則在 iOS 中的應用iOS
- [譯] 更可靠的 React 元件:單一職責原則React元件
- 面象物件設計6大原則之一:單一職責原則物件
- 設計模式的七大原則(1) --單一職責原則設計模式
- 小話設計模式原則之(2):單一職責原則SRP設計模式
- 嘻哈說:設計模式之單一職責原則設計模式
- 《JavaScript設計模式與開發實踐》原則篇(1)—— 單一職責原則JavaScript設計模式
- 單一職責原則:軟體世界中最重要的規則 - DZone
- 吃透單一職責原則,100倍效果提升程式碼質量
- 將單一職責原則應用於前端FE/BFF分層架構 - Expedia前端架構
- [OOD] 為什麼單一職責原則(SRP)是最難運用的
- Laravel深入學習8 – 單一責任原則Laravel
- 設計模式 - 單一職責設計模式
- 流程、規則和管理職責
- SOLID原則筆記Solid筆記
- 重構 - 保持函式的單一職責函式
- 領域知識與SOLID單一責任原則的解釋Solid
- 一起玩轉微服務(7)——單一職責微服務
- 【原創】《Oracle DBA日常工作和職責》Oracle
- 23種設計模式(六)單一職責之橋模式設計模式
- 依賴倒轉原則--學習筆記筆記
- (原)庫存批量規則=讀書筆記筆記
- 物件的責任與職責物件
- 職責鏈模式模式
- MySQL學習筆記:組合索引-最左原則MySql筆記索引
- 電商架構設計-通過系統和業務拆分,遵循單一職責原則SRP,保障整個系統的可用性和穩定性架構
- DRY原則的一個簡單實踐
- 增刪改是Respository的職責,還是Entity的職責?