小编use*_*074的帖子

对具有不同参数的类使用工厂模式

我有一个非常简单的工厂,需要一个枚举作为它的一个参数,以确定应创建的对象的类型,并正在创建的所有对象的共有的其他参数.

当我为工厂添加更多类型来创建我的对象时,构造函数的参数开始变化,例如:

public class someFactory {
    public someFactory() {
    }

    public SomeObject newObject(Type type, Object data) {
        return this.newObject(type, data, "");
    }

    public SomeObject newObject(Type type, Object data, Object stringOrObject) {
        SomeObject someObject = null;

        if (type != null) {
             switch(type) {
                 case CREATE:
                     someObject = new CreateObject(data);
                     break;
                 case DELETE:
                     someObject = new DeleteObject(data, (String)stringOrObject);
                     break;
                 case EDIT:
                     someObject = new EditObject(data, (Object)stringOrObject);
                     break;
                 default:
                     break;
             }
        }

        return someObject;
    }
}
Run Code Online (Sandbox Code Playgroud)

我是不是应该使用工厂,只是使用正确的参数实例化不同的类型,或者可以以某种方式改进上述内容以使其更灵活?

java design-patterns factory factory-pattern

10
推荐指数
1
解决办法
4981
查看次数

标签 统计

design-patterns ×1

factory ×1

factory-pattern ×1

java ×1