如何根据传递的参数创建不同的对象?

时间:2016-08-10 16:57:53

标签: java design-patterns

我有一个这样的用例:

基于传递的参数 - 我必须创建一个与之对应的对象,但底层功能保持不变。

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 个答案:

答案 0 :(得分:1)

  

但基础功能保持不变

你可能会考虑设计起诉界面..

做一些不错的Archi- Design,如:

定义一个接口,然后定义两个实现该接口的类 声明一个对象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();
    }
}