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/

10-10 20:03