我在理解單一責任原則方面存在問題。 SRP是否應用於課堂級別或方法級別。 可以說我有學生班,我需要創建學生,更新學生和刪除學生。 如果我創建一個具有這三個動作的方法的服務類,這是否會打破SRP原則。單一職責原則:職業水平或方法水平
3
A
回答
3
我想說你有一個服務類負責對Student
類型的對象進行CRUD操作。我沒有看到這個設計違反SRP。
從相同類(或甚至不同的類)的http://www.developerfusion.com/article/137636/taking-the-single-responsibility-principle-seriously/
兩種方法引述應注重不同的方面。然而,同一類中的兩種方法,例如一個存儲庫,可能都必須關注相同的高層責任,例如,持久性。
我在單個上下文中看到CRUD作爲衆所周知的操作,除非您有一些業務與之關聯。例如,您可能希望允許某些類只能讀取數據並拒絕它們對其進行任何更改。那時您可以使用另一個SOLID原理Interface segregation。
您可以定義一個接口,只定義在這些類中使用的讀取方法。或者如果它是有意義的(例如性能),創建一個單獨的具體類,只是實現讀取操作。
3
SRP處於課堂和方法層面。所以如果你談論的是學生課,那麼在這種情況下,只有責任在學生實體上做CRUD。同時,當你談論方法時,你不應該有一個InsertStudent方法,並根據ID進行更新和插入。如果你有插入的InsertStudent和更新它的UpdateStudent,可以打破SRP.But SRP
相關問題
- 1. 單一職責原則綜合類
- 2. 單一職責原則的實現
- 3. 瞭解單一職責原則
- 4. 單一職責原則和聚合
- 5. 單一職責
- 6. SOLID - 單一職責原則是否適用於班級中的方法?
- 7. 單一職責原則和事件監聽器
- 8. 我的設計遵循單一職責原則嗎?
- 9. 單一責任原則是否適用於職能?
- 10. 單一職責原則在特定代碼上的實施
- 11. 是否實現多個接口違反單一職責原則
- 12. 針對集合的CRUD操作的單一職責原則
- 13. 單一職責原則 - 從文件加載列表?
- 14. 單一職責原則和實體類別
- 15. 履行職責
- 16. <textarea>水平法則
- 17. ActionFilter在基地控制器的方法水平不費一槍......工作在職業等級
- 18. 水平菜單
- 19. 水平菜單
- 20. 水平居中水平ItemsControl
- 21. 驗證在物業水平
- 22. 水平或垂直
- 23. 垂直或水平
- 24. Seekbar或水平LinearLayout?
- 25. UIPageControl或水平UICollectionView?
- 26. 原因水平滾動
- 27. 水平滾動原因
- 28. 平均值的cron職位
- 29. CSS水平菜單
- 30. 水平子菜單
這裏有一個簡單的啓發式...如果你不能描述這個東西的工作(不管是方法,類還是模塊),而不使用單詞「和」,那麼你需要分解它。你的服務班「管理學生對象」,因此滿足SRP。 :-) –