2016-08-10 2 views
-1

私はこのようなユースケースを持っています:渡されたパラメータに応じて異なるオブジェクトを作成する方法は?

渡されたパラメータに基づいて、それに対応するオブジェクトを作成する必要がありますが、基本的な機能は同じです。

public void selectType() 
{ 
    String type = "ABC"; 
    publishType(type); 
} 

public void publishType(String type) 
{ 
if (type.equals("ABC")) 
ABCtype publishObject = new ABCtype(); 

if (type.equals("XYZ")) 
XYZtype publishObject = new XYZtype(); 

publishObject.setfunctionality(); 
} 

これにアプローチするにはどうすればよいでしょうか? どのデザインパターンが入りますか?

もう一つの疑問は私が持っていることです - publishObjectをどのように初期化するのですか? このようなエラーが発生します。

+1

[Factoryパターン(https://en.wikipedia.org/wiki/Factory_(オブジェクトoriented_programming))は、良好なフィットであろう。 – SomeDude

+0

FYI:これは完全に間違っています:*** if(type == "ABC")***参照を比較してコンテンツではありません.... –

+2

@Kayaman、これはデザインに関連しています – JavaHopper

答えて

1

が、基本的な機能は同じまま

あなたは多分デザイン訴えインターフェースを検討

...のようないくつかの素晴らしいアーキデザインを行い

インターフェイスを定義し、2インタフェースを実装するクラスの場合は、 オブジェクトfooを宣言し、パラメータに従って初期化します。

例:

interface IObject{ 
    //methods here 
} 
class A implements IObject{} 
class B implements IObject{} 

public void selectType() 
{ 
    IObject foo = getObject(1); 
} 

public IObject getObject(int type){ 
    if (type ==1){ 
     return new A(); 
    }else{ 
     return new B(); 
    } 
} 
関連する問題