Java1.4工厂问题

Java1.4工厂问题,java,factory-pattern,Java,Factory Pattern,我有一个工厂,我想限制可能传递到get方法中的值 public static class FooFactory{ public static final String TYPE1= "type1"; public static Foo getFoo(String type){ switch(type){ case "type1": return new Type1(); } } } 要使用此选项,请执行以下操作: FooFactory.getF

我有一个工厂,我想限制可能传递到get方法中的值

public static class FooFactory{

 public static final String TYPE1= "type1";
 public static Foo getFoo(String type){
   switch(type){
    case "type1":
      return new Type1();
    }
   }

 }
要使用此选项,请执行以下操作:

FooFactory.getFoo(FooFactory.TYPE1);

我想限制可能传入的参数。创建一个类型抽象类,然后子类化并使用类型作为参数,这是一个好主意吗?

不要子类化它,只需创建一个使用stirng参数的私有构造函数的类型类,并定义公共类型常量

像这样的

public final class Type {

    public static final Type FOO = new Type( "foo" );
    public static final Type BAR = new Type( "bar" );

    private String type;

    private Type( String type ) {
      this.type = type;
    }

    public String getType() { return type; }
}

不要将其子类化,只需创建一个带有私有构造函数的类型类,该构造函数接受stirng参数,并定义公共类型常量

像这样的

public final class Type {

    public static final Type FOO = new Type( "foo" );
    public static final Type BAR = new Type( "bar" );

    private String type;

    private Type( String type ) {
      this.type = type;
    }

    public String getType() { return type; }
}

您使用Java 1.4编程的是什么样的疯狂环境?您使用Java 1.4编程的是什么样的疯狂环境?