私は、単一の責任の原則は、1つのクラスが1つの責任または変更する1つの理由しか持たないということを知っています。これは、多くの集約メンバー変数を持つクラスがこの原則に違反していることを意味しますか?これは、クラスがその操作の一部を委譲されたメンバー変数に委譲するときに、SRPに違反することを意味します。あるいは、これらの集約されたメンバーは、自分の操作だけに責任があると考えられ、それらを含むクラスはそれらの操作とは何の関係もありません。単一責任の原則と集約
1
A
答えて
0
クラスがどの程度それを持っているかは重要ではありません。それはクラスがすることです。それは何のためです。責任は何か。クラスは、集約されたメンバーのいずれも公開しない可能性があります。 1つの方法しかないかもしれません。そして、そのすべてのメンバーはその1つの仕事をするために必要です。 1つの仕事がある限り、それは単一の責任の原則に違反していません。
つまり、他の責任の下でグループ化して抽象化しなければならない1つのジョブの下で、過度に平坦化することが可能です。抽象的な責任の変更が私たちのクラスに影響を与えた場合、彼らは適切に抽象化されませんでした。
オブジェクトへの参照を持つと、そのインターフェイスにしか公開されません。内部の変更ではありません。
+0
それは少し物事をクリアします。どうもありがとうございました。 – Jason
関連する問題
- 1. MVVM - 責任者
あなたが尋ねていることの具体的な例が役に立ちます。 – nhgrif
ビデオゲームのplayerCharacterクラスがあるとします。このクラスでは、characterAi、characterAnimation、characterControllerのメンバーを集約しています。私は、playerCharacterクラスにこれらの集約されたメンバーがすべて含まれていても、これだけがsrpに違反していないことを確認したかっただけです。 – Jason
それは本当です。しかし、playerCharacterがcharacterAi、characterAnimation、およびcharacterControllerを構築するだけでなく、それらを使用する場合は、playerCharacterのほんの少しを求めています。 – CandiedOrange