use*_*074 10 java design-patterns factory factory-pattern
我有一个非常简单的工厂,需要一个枚举作为它的一个参数,以确定应创建的对象的类型,并正在创建的所有对象的共有的其他参数.
当我为工厂添加更多类型来创建我的对象时,构造函数的参数开始变化,例如:
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)
我是不是应该使用工厂,只是使用正确的参数实例化不同的类型,或者可以以某种方式改进上述内容以使其更灵活?
我会创建一个看起来像的界面
public interface IFactory
{
SomeObject Create(Object data, String orObject);
Boolean AppliesTo(Type type);
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以拥有一个 Factory 类,其中包含用于创建、删除和编辑的三个 IFactory 的列表,并且可以在这些工厂的列表中查询第一个对 AppliesTo 方法响应 true 的工厂。
| 归档时间: |
|
| 查看次数: |
4981 次 |
| 最近记录: |