Итак, у меня есть
public class ApplicationConfig{
public static ApplicationConfig getCurrentInstance(){
//Something similar to this
if(instance==null){
FacesContext fc =FacesContext.getCurrentInstance();
if(fc==null)
return null;
wac = FacesContextUtils.getWebApplicationContext(fc);
}
instance =(ApplicationConfig)wac.getBean("appConfig");
}
return instance;
}
}
Способ получения текущего экземпляра отличается от application1 и application2.Однажды я прочитал это из весны, и однажды я использовал простой шаблон синглтона.
Есть ли способ?оба конфига имеют несколько конфигураций - например,
public boolean isConfiguredForFoo() {
return getCurrentInstance().getPropertyFoo().equals("foo");
}
РЕДАКТИРОВАТЬ , так что, наконец, я хочу быть в состоянии сделать следующее или что-то в этом роде:
ApplicationConfig.getCurrentInstance().isApplication1();
Где ApplicationConfig - это абстракция или интерфейс, application1 с его реализацией getCurrentInstance и application2 с собственной реализацией.
Более того: вызов isConfiguredForFoo () наконец вызывает getCurrentInstance.Я не могу вытащить эту функцию, потому что в абстрактном классе нет реализации getCurrentInstance и определение статического абстрактного метода недопустимо.Как можно хранить все isXXXXConfigured () в одном месте и придерживаться принципа DRY?
У меня есть зависимости от jsf и spring в applicationConfig для application1 и никаких зависимостей в application2.Как я могу использовать большинство функций из ApplicationConfig из Application1, избегая только той важной функции getCurrentInstance (), которая обращается к этим зависимостям?