вот моя проблема -
У меня есть 4 класса - Starter, Database и Scheduler и тестовый класс.
Тестовый класс создаст новый экземпляр Starter (который загружается и запускаетсявесь процесс).Starter инициализирует классы планировщика и базы данных.
Тестовый класс передает данные в Starter.Starter сохраняет его в HashMap в классе Database.Планировщик читает тот же HashMap из класса Database.
Теперь, чтобы убедиться, что к одному и тому же HashMap имеют доступ все классы во всем моем java-проекте, у меня есть 2 варианта - сделать HashMap static или сделать базу данных одноэлементным классом .Я сделал базу данных одноэлементным классом на данный момент.
Проблема - если тестовый класс делает это
Starter starterInstance1 = new Starter ();
Starter starterInstance2 = new Starter();
как мне обеспечить, чтобы starterInstance1 и starterInstance2 имели свой собственный экземпляр класса Database или HashMap?
==========
Justчтобы быть более понятным:
class Test {
Starter start1 = new Starter (); // создаем 1 экземпляр моего приложения
start1.init (); // thisинициализирует Планировщик и т. д. и выполняет getDatabaseInstance ()
for (int i = 0; i <50; i ++) {</p>
start1.sendData ("abc");// все эти 50 запросов будут отправлены в пул потоков, который отправит запрос на сохранение в HashMap в классе Database.Планировщик и другие классы будут одновременно получать доступ к HashMap.Я сделал синглтон класса Database, чтобы все классы имели доступ к одному и тому же экземпляру DB.
}
// Аналогичным образом создаю другой экземпляр моего приложения
Starter start2= new Starter ();
start2.init (); // теперь здесь, если я сделаю "getDatabaseInstance ()", я получу тот же экземпляр, что и выше.но я хочу отдельную базу данных для этого экземпляра приложения.как мне этого добиться?
для (int i = 0; i <50; i ++) {</p>
start2.sendData ("abc");
}
}