設計模式 物件導向設計原則之單一職責原則

2021-08-08 15:10:46 字數 792 閱讀 5390

初學者在程式設計的時候可能一開始會有這樣的經歷,使用乙個類來實現很多的功能,新新增的甚至不相關的功能都放在乙個類裡來實現,煮成了一鍋大雜燴,往往使得某個類包羅永珍,無所不能。可能剛開始實現功能比較簡單,這樣做不會引發什麼特別大的問題。但是隨著專案複雜度的提公升,各種不相關的實現**耦合在一起,一旦有功能的更改或增刪,修改的**很可能會導致其他功能的正常執行。這種程式設計方式顯然是不可取的,也就是違背了所謂的單一職責原則。

就是不要讓你的類太「累」。簡單的說就是乙個類只負責一項職責!(夠簡單吧)
其實就算你沒有學過單一職責原則,我想你的老師在平常的講課中,你看到的任何一本有關**的書籍中,都有提到類似的說法。因為誰都不希望在**開發中修改乙個地方會引發另外乙個地方出現問題,也就是前任踩了無數個坑之後,大家都不爽了約好了把這個坑公布出來告訴後來者,這裡有個坑啊!然後再告訴你怎樣避免這個坑。那麼我想你肯定不會再去看著天往裡直接跳了。

但是!(這樣大喘氣挺難受的,不過真的要注意)但是! 並不是說我們去寫任何程式都是乙個類真的就只負責一項職責。(明明你前端不忙,為什麼不可以把那一點點ps了,還得非要再請乙個人)

那不是扯犢子嗎?我真的沒有扯犢子!我們必須要意識到,一味的遵守單一職責原則,不停的分拆類所付出的開銷是很大的。這時候就涉及到平衡的問題,平衡單一職責原則與修改造成的開銷。我的觀點是如果乙個方法邏輯不複雜的情況下,可以修改方法實現,否則要拆分為兩個方法,遵循方法級別的單一職責原則;如果乙個類方法不多的情況下,可以只增加方法,而不用分拆為多個類,否則要拆分為多個類,遵循類級別的單一職責原則。(真當你的類分成了乙個個功能,其實對程式的管理也會變的有點難以掌控,畢竟太大了!)

物件導向設計原則之單一職責原則

單一職責原則是最簡單的物件導向設計原則,它用於控制類的粒度大小。單一職責原則定義如下 單一職責原則 single responsibility principle,srp 乙個類只負責乙個功能領域中的相應職責,或者可以定義為 就乙個類而言,應該只有乙個引起它變化的原因。單一職責原則告訴我們 乙個類不...

物件導向設計原則之單一職責原則

單一職責原則是最簡單的物件導向設計原則,它用於控制類的粒度大小。單一職責原則定義如下 單一職責原則 single responsibility principle,srp 乙個類只負責乙個功能領域中的相應職責,或者可以定義為 就乙個類而言,應該只有乙個引起它變化的原因。單一職責原則告訴我們 乙個類不...

物件導向設計原則之單一職責原則

單一職責原則是最簡單的物件導向設計原則,它用於控制類的粒度大小。單一職責原則定義如下 單一職責原則 single responsibility principle,srp 乙個類只負責乙個功能領域中的相應職責,或者可以定義為 就乙個類而言,應該只有乙個引起它變化的原因。單一職責原則告訴我們 乙個類不...