承担方法M1并M2 具有密切相关的职责
第一个例子:
如果
•M1和M2在类中定义A(因此类A是高度内聚的)
• 类B用途A.M1和类C用途A.M2
然后
•A与B和C类耦合
• 更改 will 的签名 M1只需要更改 in B,而不需要更改C
第二个例子:
如果
•M1在类中定义A1(因此B与 耦合A1)
•与M2类一起定义A2(因此C与 耦合A2)
然后
• 更改 will 的签名M1只需要更改 in B,而不需要更改C
a)据我了解,上一个示例中的类并不比第一个示例中的类更耦合!还是我错过了什么?
b)据我所知,第一个示例中的类比第二个示例中的类更松散耦合,前提是:
我们假设更改 的签名
M1也需要我们更改 的签名M2,但我不认为这种情况经常发生?!或者如果两者都
M1对M2相同类型的数据 T1 进行操作,那么将 T1 替换为 T2 将需要同时更改M1和M2?!或者,如果我们假设由于
M1并且具有密切相关的责任,那么改变通常需要M2改变的机会要大得多(即使不直接或间接调用)?!M1M2M1M2或者,如果我们假设由于
M1并且具有密切相关的职责,那么某些类需要两者的M2可能性要大得多(因此在单个类中具有and会减少耦合)?!M1M2M1M2
M1c) 定义and M2within A(而不是定义M1withinA1和M2within )是否有任何其他原因A2会减少耦合?
注意 - 我知道我们应该拥有高度内聚的模块,因为它更易于维护和可重用
谢谢