我知道單一責任原則規定,一個類只應該有一個責任或一個理由來改變。這是否意味着一個有許多聚合成員變量的類違反了這個原則?我的意思是,當一個類將其一些操作委託給它的聚合成員變量是違反SRP的時候?還是這些聚合成員認爲只對他們的行動負責,而包含他們的類別與這些行動無關?單一職責原則和聚合
1
A
回答
0
這個班級有多少不是重點。這是班級的職責。它是爲了什麼。它的責任是什麼。該類可能不會公開任何這些聚合成員。它可能只有一種方法。所有這些成員都需要完成這一項工作。只要它有一份工作,就不違反單一責任原則。
也就是說,在一項工作中可能會過度壓扁,這些工作應該在其他職責中被分組和抽象化。如果這些抽象責任的改變會影響我們的班級,那麼他們就沒有被恰當地抽象出來。
對一個對象的引用只能讓你看到它的接口。不是它的內部變化。
+0
好吧,清除一些事情。非常感謝你。 – Jason
相關問題
- 1. 單一職責原則綜合類
- 2. 單一職責原則的實現
- 3. 瞭解單一職責原則
- 4. 針對集合的CRUD操作的單一職責原則
- 5. 單一職責原則:職業水平或方法水平
- 6. 單一職責原則和事件監聽器
- 7. 單一職責原則和實體類別
- 8. 單一職責
- 9. 我的設計遵循單一職責原則嗎?
- 10. 單一責任原則是否適用於職能?
- 11. 單一職責原則在特定代碼上的實施
- 12. 是否實現多個接口違反單一職責原則
- 13. 單一職責原則 - 從文件加載列表?
- 14. 單一責任原則
- 15. 單一責任原則webapi
- 16. 單一責任原則和課
- 17. 單一責任原則和知識庫
- 18. 單一責任原則和Backbone.View
- 19. 在SOLID中,SRP和ISP之間有什麼區別? (單一職責原則和界面分離原則)
- 20. 幫助理解單一責任原則
- 21. 單一責任原則是否違規
- 22. 單一責任原則 - 功能
- 23. SOLID - 單一職責原則是否適用於班級中的方法?
- 24. 實用課程是否允許使用單一職責原則(SRP)
- 25. 使用「單一職責原則」迫使我的容器有公共設置器
- 26. PHPMD說違反單一職責原則具有布爾默認值參數
- 27. 什麼時候違反單一責任原則是合理的?
- 28. 代碼遵守單一責任原則和單元測試
- 29. 是單一責任原則OOP的一個規則?
- 30. 單一責任原則(SRP)和我的服務類別
你問的一個具體例子會很有用。 – nhgrif
假設你有一個視頻遊戲的角色類。在這個類中,你已經聚合了characterAi,characterAnimation和characterController的成員。我只是想確認,即使playerCharacter類擁有所有這些聚合成員,但這並不違反srp。 – Jason
的確如此。但是,如果playerCharacter構造了characterAi,characterAnimation和characterController以及使用它們,您就會多詢問playerCharacter。 – CandiedOrange