-1
class Traveler {   
    Car c=new Car();

    void startJourney() {
        c.move();
    }
}

class Car {
    void move() { }
}
4

2 回答 2

2

你的问题可能意味着任何事情。完全猜测我会说这个问题可能是关于使用接口与具体类。

这种情况下的耦合来自于这样一个事实,即 Traveler 直接引用 Car 类,如果没有潜在的重大变化,它就不可能是另一个类。您可以做的是Car实现一个接口Transport并让 Traveler 传递一个 Transport。这样,Traveler 确实需要知道它使用的是什么类。

interface Transport {
    void move() { }
}

class Traveler {   
    final Transport transport;

    Traveler(Transport transport) {
         this.transport = transport;
    }

    void startJourney() {
        transport.move();
    }
}

class Car implements Transport {
    public void move() { }
}

// later
Traveler traveler = new Traveler(new Car());
traveler.startJourney();
于 2013-11-02T09:00:25.520 回答
0
class Traveler
{
    Car c = new Car();

    void startJourney()
    {
        c.move();
    }
}

班级对Traver班级有深入的了解Car。他知道它存在,并且他知道它有一个名为 的方法move

但是,对 .Car一无所知Traveler,所以我不会称它们为“紧密耦合”。

于 2013-11-02T09:00:53.143 回答