我建議你創建2個基類,1個爲實體,1個爲VO。
實施例:
public abstract class Entity implements Serializable {
}
public abstract class AbstractVO {
}
然後,使用一個Abstract Factory圖案爲每個對象的工廠
public AbstractFactory {
private AbstractFactory() {}
public abstract Factory getFactory(Class clazz) {
if (Entity.class.isAssignableFrom(clazz)) {
return new EntityFactory();
}
if (AbstractVO.class.isAssignableFrom(clazz)) {
return new VOFactory();
}
return null;
}
}
我使用的是Class.isAssignableFrom()
方法的說,子類的類是從父類分配(它如果你明白我想說的話)。這是這裏的訣竅。
對於這一點,我會做一個工廠爲每個對象
public abstract Factory<T> {
public abstract T createObject();
}
public class EntityFactory extends Factory<Entity> {
public Entity createObject(Class entityClass) {
try {
return entityClass.newInstance();
} catch (Exception e) {
e.printStackTrace();
}
}
}
public class VOFactory extends Factory<AbstractVO> {
public AbstractVO createObject(Class voClass) {
try {
return voClass.newInstance();
} catch (Exception e) {
e.printStackTrace();
}
}
}
最後,得到了對象
Entity entity = (Entity)AbstractFactory.getFactory(Entity.class).createObject();
問題是什麼? – Andrey
你的工廠有不同的實現有共同的抽象嗎? –