【发布时间】:2015-08-19 07:01:00
【问题描述】:
我现在正在开发一个网络应用程序,并且有以下类层次结构:
public class AbstractCreator{
public Object create(){
getCreateService().crete();
}
public abstract CreateService getCreateService();
public abstract void setCreateService(CreateService createService);
}
后代:
public class SubCreator extends Creator{
@Named("subCreateService") //I prefer using that annotation
// instead of the legacy @Autowired
private CreateService createService;
@Override
public CreateService getCreateService() {
return createService;
}
@Override
public void setCreateService(CreateService createService) {
this.createService = createService;
}
}
和
public class MegaSubCreator extends Creator{
@Named("megaSubCreateService")
private CreateService createService;
@Override
public CreateService getCreateService() {
return createService;
}
@Override
public void setCreateService(CreateService createService) {
this.createService = createService;
}
CreateService 只是一个接口:
public interface CreateService{
public Object create();
}
问题:我需要使用abstract class 中的服务,但有关服务的信息只能从我们执行注入的具体子类中获得。在这种情况下使用抽象 getter/setter 是否正确?
我的意思是,这与JavaBeans 模式不矛盾吗?
【问题讨论】:
标签: java class interface javabeans