class Traveler {
Car c=new Car();
void startJourney() {
c.move();
}
}
class Car {
void move() { }
}
答案 0 :(得分:2)
你的问题可能意味着什么。完全猜测我会说问题可能是讨论使用接口和具体类。
这种情况下的耦合来自于这样一个事实:Traveler直接引用了Car类,并且它不能成为另一个没有潜在重大变化的类。您可以做的是让Car
实现接口Transport
并让Traveler传递给Transport。这样旅行者确实需要知道它正在使用什么类。
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();
答案 1 :(得分:0)
class Traveler
{
Car c = new Car();
void startJourney()
{
c.move();
}
}
Traver
班级对Car
班级有深入的了解。他知道它存在,并且他知道它有一个名为move
的方法。
但是,Car
对Traveler
一无所知,所以我不会打电话给他们"紧密耦合"。