0
我工作的一個Web應用程序現在有下面的類hiereachy:瞭解JavaBeans的模式(摘要getter和setter)
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
模式不矛盾嗎?
事實上,關於構造函數的想法聽起來不錯。謝謝。 –