Java 1.4工厂问题

时间:2011-02-10 20:11:54

标签: 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.getFoo(FooFactory.TYPE1);

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

1 个答案:

答案 0 :(得分:4)

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

像这样。

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; }
}