メソッドM1を想定し、M2 強く関連する責任を負う
最初の例:
もしも
• M1andM2はクラス内で定義されますA(したがって、クラスAは非常にまとまりがあります) 。
•クラスのB使用A.M1とクラスのC使用A.M2
それから
•とクラスAの両方に結合されているBC
• の署名を変更する には、M1でのみ変更が必要ですが、では必要ありBません。C
2 番目の例:
もしも
•M1クラス内で定義されているA1(したがってBと結合されているA1)
•M2クラスで定義されているA2(したがって、Cと結合されているA2)
それから
• の署名を変更するには、M1でのみ変更が必要ですが、では必要ありBません。C
a) 私の理解では、最後の例のクラスは、最初の例のクラスよりも結合されていません! または、何か不足していますか?
b)私が知る限り、最初の例のクラスは、次の場合にのみ2番目の例のクラスよりも疎結合です。
M1の署名を変更するには、 の署名も変更する必要があると想定していM2ますが、そう頻繁に起こるとは思いませんか?!または、 と の両方が同じタイプ T1 のデータ
M1をM2操作する場合、T1 を T2 に置き換えるには、M1とM2?!の両方を変更する必要があります。または、密接に関連する責任があるため、変更する
M1と変更が必要になるM2可能性がはるかに高いと仮定すると(直接的または間接的に呼び出さなくても)?!M1M2M1M2または、密接に関連する責任があるために、一部のクラスが と の両方を必要とする可能性がはるかに高いと仮定すると(そのため、
M1とを単一のクラスに持つことで結合が減少します)?!M2M1M2M1M2
c) ( withinとwithinを定義する代わりに) M1and withinを定義すると結合が減少する理由は他にありますか?M2AM1A1M2A2
注 - メンテナンスと再利用が容易なため、凝集性の高いモジュールが必要であることは承知しています。
ありがとうございました