public class TightlyCoupledClient{
public static void main(String[] args) {
TightlyCoupledServer server = new TightlyCoupledServer();
server.x=5; //should use a setter method
System.out.println("Value of x: " + server.x);
}
}
class TightlyCoupledServer {
public int x = 0;
}
在“ J2SE 5平台的SCJP考试”中指出,如果a和b互相使用,则它们紧密耦合。它使用上面的示例。但是TightlyCoupledServer似乎使用了TightlyCoupledClient。我怎么会错呢?
最佳答案
这些类是相互依赖的,但以一种相当微妙的方式。
显然,TightlyCoupledClient
直接取决于TightlyCoupledServer
。就在源代码中。TightlyCoupledServer
在什么意义上取决于TightlyCoupledClient
?好吧,服务器类具有一个公共字段,并且大概依赖于其所有客户端(不只是TightlyCoupledClient
)都可以正确地写入此字段。因此,要验证TightlyCoupledServer
的正确性,必须检查系统中可能写入此字段的所有内容的代码。
考虑为TightlyCoupledServer
编写单元测试。我们想要写一些类似的东西:
assertEquals("x should be 5", 5, x);
为使此声明为真,
TightlyCoupledClient
中的代码必须正确并且必须在此声明之前运行。还有你的依赖性。关于java - 紧耦合的例子没有意义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20342281/