是否可以构建一个只接受给定选项列表中的值的方法?具有类似于setBackground方法的"行为"的东西,该方法开始显示默认的
BorderPane bP = new BorderPane();
bP.setBackground(Background.EMPTY);
我的目标是构建一个工厂类,它有一个接受a、B或C并返回相应对象的方法。我正在寻找的最终结果是:
MyObject square = new MyObjectFactory(SQUARE)// square is default and is added automatically to the method.
MyObject circle= new MyObjectFactory(CIRCLE);//user gets a list of SQUARE, CIRCLE, or TRIANGLE...
我试着在Stackoverflow上查找类似的问题,但我甚至不确定我要查找的功能是从什么开始的。所以我在描述"行为"。
有没有办法在JAVA中制作这样的东西,或者它只是一个JAVA"东西"?感谢您的帮助。
这可能是自定义图形对象的工厂模式:
enum ObjectType { CIRCLE, SQUARE };
public class MyObject extends Group {
}
public class MyCircle extends MyObject {
public MyCircle() {
getChildren().add(new Circle(12));
}
}
public class MyRectangle extends MyObject {
public MyRectangle() {
getChildren().add(new Rectangle(0, 0, 18, 18));
}
}
public class MyObjectFactory {
static MyObject make(ObjectType type) {
switch (type) {
case CIRCLE: return new MyCircle();
case SQUARE: return new MyRectangle();
default: throw new UnsupportedOperationException("Unsupported type: "+type);
}
}
}
void testFactory(VBox box) {
MyObject circle = MyObjectFactory.make(ObjectType.CIRCLE);
MyObject square = MyObjectFactory.make(ObjectType.SQUARE);
box.getChildren().addAll(circle, square);
}