Как реализовать статическую систему настроек для всего проекта? - PullRequest
1 голос
/ 10 января 2011

Я хочу сделать следующее: у меня есть группа классов, которые читают XML-файлы свойств во время загрузки, в их статическом разделе.Некоторые файлы даже совместно используют файл свойств, поэтому было бы глупо повторять один и тот же файл.

Я хочу создать одноэлементный класс, который возвращает уже загруженный экземпляр файла свойств любому классу, который его запрашивает.Пока все просто.

Однако у меня есть несколько таких файлов, которые необходимо загрузить, поэтому естественной мыслью было бы написать статический базовый класс для обработки чтения файлов, а затем объектно-ориентировать детали каждого подклассазаставляя их просто реализовать метод выбора местоположения.

А потом я узнал, что статического наследования не существует ...

Как я могу реализовать это, не полагаясь на статическое наследование?

Ответы [ 2 ]

1 голос
/ 10 января 2011

Как вы указываете файл для загрузки?Можно ли указать несколько файлов вместо одного?

Я бы также пересмотрел использование шаблона синглтона.Вероятно, вы могли бы использовать внедрение зависимостей, чтобы внедрить ваш интерфейс Preferences в любой класс, который в этом нуждается.Например, рассмотрим способ, которым Spring предоставляет интерфейс MessageSource через свой ApplicationContext.

0 голосов
/ 10 января 2011

Один из вариантов - реализовать абстрактный базовый класс с абстрактным методом, который потребуется реализовать расширителям, определяющим метод класса выборки местоположения.

пример: (прошу прощения за простые имена методов)

public abstract class BaseReader {
  public List<Property or whatever> readFile() {
    // common reading logic here
  }

  public abstract String getXmlFileLocation(); // subclasses implement this

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...