【发布时间】:2015-02-15 16:43:41
【问题描述】:
我正在研究桥接模式,并没有什么疑问。我从一个网站获得了以下代码,在该网站我创建了一个抽象类作为接口。
abstract class Vehicle {
protected Workshop workShop1;
protected Workshop workShop2;
protected Vehicle(Workshop workShop1, Workshop workShop2) {
this.workShop1 = workShop1;
this.workShop2 = workShop2;
}
abstract public void manufacture();
}
public interface Workshop {
abstract public void work();
}
我们为什么要创建一个构造函数来为接口声明 2 个对象?
public class Car extends Vehicle {
public Car(Workshop workShop1, Workshop workShop2) {
super(workShop1, workShop2);
}
@Override
public void manufacture() {
System.out.print("Car ");
workShop1.work();
workShop2.work();
}
}
同样的,为什么要在传递接口的引用对象时再次声明构造函数?
【问题讨论】:
-
你有什么问题?
-
为什么我们创建了一个构造函数来为接口声明 2 个对象?我无法理解这件事
-
能否也分享一下教程链接
-
我根本不认为该教程具有启发性。他们似乎提出了一个微不足道的案例,在我看来,它本身甚至不是一个好的案例。自行车的制造过程应该与汽车的制造过程有很大不同。您不能使用任何随机的
Workshop对象来创建您的自行车/汽车对象,因此我看不到已解耦的内容。
标签: java design-patterns interface abstract-class