我创建了一个BicycleProducer
具有不同实现的接口:OffroadBicycleProducer
等等FastBicycleProducer
。
这些工厂中的每一个都需要许多参数才能生产自行车。我想将这些属性封装在一个类中并将其传递给produce
方法。然而,自行车需要不同的属性——有些可能是相同的——我想知道如何正确地做到这一点。在我的接口中,BicycleProducer
我目前有一个名为的方法produce
,它接受一个参数,该参数BicycleProducingContext
是一个具有所有公共属性的接口。然后你有实现它的实现,并根据它是什么类型的自行车添加必要的属性。然后你需要在produce
方法中强制转换它......但我不知道。我觉得这似乎有点狡猾(可能不是)。
这是一个很好的方法还是我应该以另一种方式来做?
public interface BicycleProducer {
void produce(BicycleProducingContext context);
}
public class OffroadBicycleProducer implements BicycleProducer {
public void produce(BicycleProducingContext context) {
context = (OffroadBicycleProducingContext) context;
}
}
和
public interface BicycleProducingContext {
int numberOfBicycles();
void brand(String brand);
}
public class OffroadBycycleProducingContext implements BicycleProducingContext {
//..
}