`

求助:java消除代码相似性

阅读更多
我现在有一个枚举类ExperimentType
在model里有很多类似的各种实验对象,他们都是继承某一个实验对象基类BaseExperiment,他的DAO是experimentDAO

当我做保存或者更新的时候,就得根据不同的对象来
我是这么写的
switch(ExperimentType.valueOf(experimentName)){
case a:
A a= (A)experiment;
A aNow = (A)experimentDAO.getObject(experiment.getId());
aNow.copyProperty(a);
experimentDAO.updateObject(aNow);
break;

case b:
B b= (B)experiment;
B bNow = (B)experimentDAO.getObject(experiment.getId());
bNow.copyProperty(b);
experimentDAO.updateObject(bNow);
break;

case c:
C c= (C)experiment;
C cNow = (C)experimentDAO.getObject(experiment.getId());
cNow.copyProperty(c);
experimentDAO.updateObject(cNow);
break;
...............很多类似的
}
可以发现上面的代码都是很类似的,所以我就想,能不能让他通过某种机制,如反射等,自动根据枚举里面的对象来匹配操作,动态加载不同的类对象来实例化,让他变成不用switch的这种写法,让代码更简单化,消除这种相似性

还请大家帮忙,谢谢!
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics