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

2022-02-14 05:11:26 字數 972 閱讀 7246

單一職責原則:不要存在多於乙個導致類變更的原因。通俗的說,即乙個類只負責一項職責。

也就是類a 如果負責兩項任務t1和t2,如果當t1職責需求變更需要修改類a,可能會對t2導致影響或故障

這個時候我們就需要將任務t1和t2分離開來,遵循單一原則,既修改t1,t2不受影響

舉個例子:

class

animal

}public

class

client

}

執行結果:

牛在地上跑

羊在地上跑

豬在地上跑

這沒什麼問題,但有一天我們需要修改需求,出現了魚,鳥,水下和飛禽,這些動物,總不可能也是在地上跑的吧?

我們來進行修改

class

animal

public

void

aquaticrun(string animal)

public

void

birdrun(string animal)

}public

class

client

}

執行結果:

牛在地上跑

羊在地上跑

豬在地上跑

貓頭鷹在天上飛

鯊魚在水裡游

很顯然,只需要增加乙個方法就可以滿足我們的要求,簡單粗暴,但這種方式違反了單一原則,乙個類只負責一項業務職責,我們接著通過遵循單一原則進行最後修改

class

animal

}class

aquaticanimal

}class

birdanimal

}public

class

client

}

這樣如果新增一類動物,只需要新加乙個類就可以了,不會影響其他職責,單一職責原則,主要是控制粒度大小,實現高內聚低耦合

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

singleresponsibility 對類而言,乙個類只負責一項職責。如果類a負責兩個不同的職責 職責1和職責2 當職責1需求變更改變a時,可能就會造成職責2執行錯誤 所以需要將類a的粒度分解為a1,a2a.降低類的複雜度,乙個類只負責一項職責 b.提高類的可讀性,可維護性 c.降低變更引起的風...

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

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

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

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