設計模式 七大原則 單一職責原則

2021-10-09 12:33:27 字數 1615 閱讀 7381

singleresponsibility

對類而言,乙個類只負責一項職責。
如果類a負責兩個不同的職責:職責1和職責2;

當職責1需求變更改變a時,可能就會造成職責2執行錯誤;

所以需要將類a的粒度分解為a1,a2

a. 降低類的複雜度,乙個類只負責一項職責

b. 提高類的可讀性,可維護性

c. 降低變更引起的風險

d. 通常情況下,應遵循單一職責原則。

只有在邏輯足夠簡單的情況下,可以在**級別違反單一職責;

也只有在類中方法數量足夠少的情況下,可以在方法級別保持單一職責原則。

案例說明:交通工具
方案1:
• 在案例1的run(),違反了單一職責原則

• 解決方案:

• 根據交通工具執行的不同,分解成不同的類即可

public

class

singleresponsibility1

}/**

*交通工具類

*/class

vehicle

}

輸出結果:

汽車在路上跑。。。

輪船在路上跑。。。

飛機在路上跑。。。

方案2:
• 遵守單一職責原則

• 但這樣改動大,將類分解,同時需要修改客戶端

• 改進方案:

• 直接修改vehicle,改進**比較少

public

class

singleresponsibility2

}/**

*交通工具類

*/class

roadvehicle

}class

airvehicle

}class

watervehicle

}

輸出結果:

汽車在路上跑。。。

輪船在水裡游。。。

飛機在天上飛。。。

方案3:
• 方法級別保持單一職責原則

• 改動小,將類的方法做分解

• 在類中方法數量足夠少的情況下,在方法級別保持單一職責原則。

public

class

singleresponsibility3

}/**

*交通工具類

*/class

vehicleaplus

public

void

airrun

(string vehicle)

public

void

waterrun

(string vehicle)

}

輸出結果:

汽車在路上跑。。。

輪船在水裡游。。。

飛機在天上飛。。。

本筆記學習於b站的課程後整理~

設計模式 七大原則 單一職責原則

responsibility principle srp 乙個類或者模組只負責完成乙個職責 或者功能 類和模組的兩種理解 把模組看作比類更加抽象餓概念,類也可以看作模組 把模組看作壁壘更加粗粒度的 快,模組中包含多個類,多個類組成乙個模組 不是。不管是應用設計原則還是設計模式,最終的目的還是提高 的...

設計模式七大原則 單一職責原則

乙個類應該只負責一項職責。如類 a 負責兩個不同職責 職責 1,職責 2。當職責 1 需求變更而改變 a 時,可能造成職責 2 執行錯誤,所以需要將類 a 的粒度分解為 a1,a2 以交通工具為案例進行講解 1 public class singleresponsibility1 8 910clas...

設計模式七大原則之單一職責原則

單一職責原則 不要存在多於乙個導致類變更的原因。通俗的說,即乙個類只負責一項職責。也就是類a 如果負責兩項任務t1和t2,如果當t1職責需求變更需要修改類a,可能會對t2導致影響或故障 這個時候我們就需要將任務t1和t2分離開來,遵循單一原則,既修改t1,t2不受影響 舉個例子 class anim...