2011-02-10 5 views
1

私は工場を持っており、getメソッドに渡す可能性のある値を制限したいと考えています。その後、サブクラス化して、パラメータとして型を使用し、タイプ抽象クラスを作るためにJava 1.4の工場の質問

FooFactory.getFoo(FooFactory.TYPE1); 

は私が渡されるパラメーターを制限したい考えである:。

public static class FooFactory{ 

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

} 

はこれを使用するには?

+0

Java 1.4でどのような非常識な環境をプログラミングしていますか? –

+0

私はそれを聞いて.... – bmw0128

答えて

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

あなたは正しい - 1.4 facepalm +1 – hvgotcodes