Java 父类组件上CRUD操作的接口/设计模式
我有一个父类ProcessDefinition,它是从WSDL生成的。它有十几个组件类。我的要求是:Java 父类组件上CRUD操作的接口/设计模式,java,spring,design-patterns,interface,wsdl,Java,Spring,Design Patterns,Interface,Wsdl,我有一个父类ProcessDefinition,它是从WSDL生成的。它有十几个组件类。我的要求是: 从数据库中提取现有定义 将新定义插入数据库 更新数据库中的现有定义(可能需要插入、更新、删除定义的组件) 从数据库中删除定义 提取很容易,因为我检查数据库中是否存在每个组件,如果存在,则添加到定义中。为此,我打算使用带有方法的接口 public interface ComponentDAO { public void addComponentToDefinition(ProcessDef
- 从数据库中提取现有定义
- 将新定义插入数据库
- 更新数据库中的现有定义(可能需要插入、更新、删除定义的组件)
- 从数据库中删除定义
public interface ComponentDAO
{
public void addComponentToDefinition(ProcessDefinition definition, String environmentName);
}
我将为每个组件提供一个实现,它将从数据库中提取其组件信息(如果存在),创建所需的类并在定义中设置它
在spring中,我将配置该接口的列表并插入每个实现,然后在我的主DAO类中,我只需执行以下操作
ProcessDefinition definition = new ProcessDefinition()
definition.setProcessID(someID);
for (ComponentDAO c: this.getComponentDAOs)
{
c.addComponentToDefinition(definition);
}
这很容易扩展,如果添加新组件,则不需要接触任何现有类。但是,在更新组件或创建新组件时,我需要知道组件类,即
public void update(ProcessComponentA component, String environmentName);
public void update(ProcessComponentB component, String environmentName);
使用泛型,我可以将接口定义为
public interface ComponentDAO<T>
{
public void addComponentToDefinition(ProcessDefinition definition, String environmentName);
public void updateComponent(T component);
}
公共接口组件dao
{
public void addComponentToDefinition(ProcessDefinition,String environmentName);
公共无效更新组件(T组件);
}
这使ComponentDAO实现保持干净,但是在调用接口的主类中,我必须定义原始类型中的ComponentDAO列表,不需要类型转换,但是编译器无法完成类型检查,并导致关于参数化原始类型的警告
是否有一个设计模式,我应该使用这个?假设我忽略了hibernate或任何其他ORM框架。IUD是指CRUD吗?是的,我在用SQL思考:)更新了标题。