六大設計原則之單一職責原則

2021-09-17 08:33:48 字數 973 閱讀 1554

單一職責原則指乙個類應當只負責一件事情。

單一職責原則本質上是在提高類的內聚性。帶來的好處有

結合業務去審視類的定義,使類與業務實體相對應。

該場景根據筆者看到的真實案例改寫而成。

場景描述:一年級做了一次語文模擬考試。現在有如下三個需求:

找出得100分的學生

找出分數在【90,100】的學生

找出分數是90、96或100的學生

**實現

class student 

public getgrade()

}

原先的**實現是

class filter 

listfilter(liststudents) else if(this.filtergrades.length = 2) else if(this.filtergrades.length > 2) }}

}}

說明:為了簡化**便於說明問題,具體過濾的**沒有寫出

可以看到,以上**將三種過濾方式融合在乙個類filter當中,表面看功能很強大,但實際上有如下不足:

當把**改為如下形式之後就清晰多了

inte***ce filter 

class valuefilter implements filter

listfilter(liststudents)

}

class rangefilter implements filter

listfilter(liststudents)

class collectionfilter implements filter

listfilter(liststudents)

//做分數列表過濾,如(90,96,100)

}}

六大設計原則 單一職責原則

這裡的職責是指類變化的原因,單一職責原則規定乙個類應該有且僅有乙個引起它變化的原因,否則類應該被拆分。該原則提出物件不應該承擔太多職責,如果乙個物件承擔了太多的職責,至少存在以下兩個缺點 1.乙個職責的變化可能會削弱或者抑制這個類實現其他職責的能力 2.當客戶端需要該物件的某乙個職責時,不得不將其他...

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

單一職責原則 1 定義 不要存在多於乙個導致類變更的原因。通俗的說,即乙個類只負責一項職責。2 問題由來 類t負責兩個不同的職責 職責p1,職責p2。當由於職責p1需求發生改變而需要修改類t時,有可能會導致原本執行正常的職責p2功能發生故障。3 解決方案 遵循單一職責原則。分別建立兩個類t1 t2,...

六大設計原則詳解 1 單一職責原則

單一職責原則 srp single responsibility principle 它規定乙個類應該只有乙個發生變化的原因。所謂職責是指類變化的原因。如果乙個類有多於乙個的動機被改變,那麼這個類就具有多於乙個的職責。而單一職責原則就是指乙個類或者模組應該有且只有乙個改變的原因。單一職責原則的好處 ...