單一職責原則,全稱single responsibility principle,英文縮寫srp。
簡單來說,就是乙個類應該只有乙個變化的原因,在乙個類裡,只負責乙個職責。
如果乙個類需要修改,那麼就是因為其職責發生變化這個原因才需要修改,如果因為其它原因而去修改,那這個類就是負責了多個職責。
這裡定義乙個pen類,它有write寫字的方法。
publicclass
pen}
public
static
void main(string
args)
如果想定義用不同顏色的筆來寫,這個設計就滿足不了。比如說,用黑筆和紅筆,這裡就具有兩個職責,乙個是寫黑色字,乙個是寫紅色字。下面修改方法來滿足設計原則。
第一種
publicclass
pen
else
if (color == "
red"
)
}}
這樣讓write方法可以同時寫黑字和紅字。設計上,write可以寫不同的字,write是只有乙個寫字的職責。
第二種
publicclass
pen
public
void
writered()
}
在pen類中定義writeblack和writered兩個方法。設計上,pen類可以寫黑字和紅字,pen是只有乙個寫字的職責。
第三種
publicclass
blackpen
}public
class
redpen
}
定義blackpen和redpen,每種筆都可以寫字。設計上,每種顏色的筆寫對應顏色的字,每個類都只有乙個寫字的職責。
總結
單一職責原則的重點在於職責的劃分,通過職責的細化,體現高內聚的優點,讓各個模組更加清晰,可以減少修改帶來的影響。
設計原則 單一職責原則
定義 不要存在多於乙個導致類變更的原因。通俗的說,即乙個類只負責一項職責。問題由來 類t負責兩個不同的職責 職責p1,職責p2。當由於職責p1需求發生改變而需要修改類t時,有可能會導致原本執行正常的職責p2功能發生故障。解決方案 遵循單一職責原則。分別建立兩個類t1 t2,使t1完成職責p1功能,t...
設計原則 單一職責原則
1 原則的定義 2 原則設計的初衷 3 能解決哪些問題 4 有哪些場景可以使用 單一職責原則,英文名single responsibility principle,縮寫為srp。乙個類或者模組只負責完成乙個職責 或者功能 也就是說,不要設計大而全的類,要設計粒度小,功能單一的類。換個角度來講就是,乙...
設計原則 單一職責原則
在物件導向程式設計領域中,單一職責原則 single responsibility principle 規定每個類都應該有乙個單一的功能,並且該功能應該由這個類完全封裝起來。所有它的 這個類的 服務都應該嚴密的和該功能平行 功能平行,意味著沒有依賴 乙個類或者模組應該有且只有乙個改變的原因。乙個具體...