我正在尝试用 Java 实现工厂模式。我有一个名为 Shape 的类,它扩展了 Circle 和 Triangle。问题在于 Shape 构造函数仅获取 2 个参数,而 Circle 获取 3 个参数,Triangle 也是如此(我不会在代码部分显示,因为它与 Circle 相同)。为了更好地展示它:
private interface ShapeFactory{
public Shape create(int x, int y);
}
private class CircleFactory implements ShapeFactory{
public Shape create(float radius, int x, int y){ //error
return new Circle(radius, x,y);
}
}
任何想法如何克服这个问题?我不能收到工厂内部用户的输入(必须从外部收到)。
谢谢!
原文由 Jjang 发布,翻译遵循 CC BY-SA 4.0 许可协议
你有两个选择:
1) 抽象工厂:
RectangularShape extends Shape
RoundShape extends Shape
和
RectangularShapeFactory
和RoundShapeFactory