Я разрабатываю серверное приложение на Java.Мне нужно загрузить некоторые ресурсы из разных источников (XML и базы данных).Итак, мне нужен совет о том, как правильно реализовать загрузку.
У меня есть класс «ServerX», который создает некоторый объект «Память», это те объекты, которые будут содержать загруженные ресурсы.
Я нашел два разных способа загрузки, но оба кажутся грязными.
1
public class ServerX
{
/**
Will hold the houses for further use.
*/
private Memory<House> houses;
public ServerX()
{
houses = new Memory<House>();
loadHouses();
loadXX();
loadYY();
LoadZZ();
Load...
}
private void loadHouses()
{
//Pseudo code
List<House> loaded = loadHousesFromDatabase();
houses.addAll(loaded);
}
private void loadXX();
...
}
Но так, это затопило мой класс "ServerX".
2
public interface Loader
{
public void loadHouses(Memory<House> toFill);
public void loadXX(Memort<XX> toFill);
public void loadYY(Memort<YY> toFill);
public void loadZZ(Memort<ZZ> toFill);
}
public class SimpleLoader implements Loader
{
//Implements methods.
}
public class ServerX
{
/**
Will hold the houses for further use.
*/
private Memory<House> houses;
public ServerX(Loader loader)
{
houses = new Memory<House>();
loader.loadHouses(houses);
loader.loadXX...
}
}
Но, таким образом, я думаю, что попадаю в антипаттерн Poltergeist, потому что я создаю новый загрузчик только для того, чтобы выполнить запрос к файлу базы данных / XML, а затем он собирается мусором.
Итак, есть ли другой способ сделать это, или одно из моих решений достаточно хорошо?
Спасибо.