我目前正在学习Java中的耦合和依赖。我一直在阅读this tutorial,并了解如果class1包含class2的实例,并且如果调用类似exampleMethod(c2)
的方法,则这将被视为class1和class2之间的依赖关系。但是,我不确定下面的例子。任何人都可以给我一些澄清吗?
假设我们在class1中(包含class2 c2
):
如果class1调用class2中定义的方法(例如c2.aMethod()
),那么这是否算作class1和class2之间的依赖/耦合?
调用c2.someSetterMethod(argument)
是否算作class1和class2之间的依赖/耦合?
在class1中调用c2.repaint()
是否算作依赖项?
答案 0 :(得分:1)
class1包含对class2实例的引用,这足以说明class1 取决于在class2上。在所有3个示例中,您需要引用class2才能调用其方法。这只会增加class1中依赖的需要,而不是依赖本身。
请阅读我对上一个问题的回答中提到的http://depfind.sourceforge.net/Manual.html#Dependencies:https://stackoverflow.com/a/21689495/1659599。
答案 1 :(得分:0)
减少耦合的一种方法是使用接口。这样,类1只知道接口,并没有专门与类2耦合。实际上,任何实现接口的类都可以用来代替类2,类1仍然会被满足。