вот мой problem--разделить экземпляр, но создать новую для каждого нового процесса
У меня есть 4 класса - Starter, базы данных и планировщик и класс Test.
Испытательный класс создаст новый экземпляр стартера (который загружает и запускает весь процесс). Стартер инициализирует классы Планировщик и База данных.
Класс испытаний передает данные стартеру. Starter хранит его в классе HashMap в базе данных. Планировщик читает тот же HashMap из класса базы данных.
Теперь для того, чтобы точно такой же HashMap доступ всех классов на протяжении всей моей Java проекта, у меня есть 2 options-- сделать Hashmap статическую или сделать базу данных по синглтон класс. На данный момент я создал базу данных для одного класса.
problem-- если класс Test делает этот
Starter starterInstance1 = новый стартер();
Стартер стартерInstance2 = новый Стартер();
Как я могу гарантировать, что starterInstance1 и starterInstance2 имеют свой экземпляр класса Database или HashMap?
==========
Просто быть более ясным:
класс Test {
Starter start1 = новый Starter(); // создание 1 экземпляр моего приложения
start1.init(); // это будет инициализировать планировщик и т.д., и сделать "getDatabaseInstance()"
для (INT I = 0; я < 50; я ++) {
start1.sendData ("abc"); // все эти 50 запросов будут отправлены в threadpool, который отправит запрос для хранения в HashMap в классе базы данных. Доступ к HashMap будет осуществляться одновременно с помощью Планировщика и других классов. Я создал класс Singleton Database, чтобы все классы имели доступ к одному экземпляру базы данных.
}
// Аналогично создать другой экземпляр моего приложения
Стартер start2 = новый стартер();
start2.init(); // теперь, если я делаю «getDatabaseInstance()», я получу тот же экземпляр, что и выше. но я хочу отдельную базу данных для этого экземпляра приложения. как мне это достичь?
для (INT I = 0; я < 50; я ++) {
start2.SendData ("ABC");
}
}
Если база данных одноэлементно, я не понимаю, как они могли бы иметь другой экземпляр. Это точка одноэлементного паттерна. В одной части вашего вопроса говорится, что к одной и той же точной карте должны быть доступны все классы, а другая говорит, что каждый экземпляр стартера должен иметь свой собственный экземпляр. Что ты хочешь? –
yes singleton будет иметь только 1 экземпляр. но я этого не хочу. отправной точкой моего приложения является класс Starter. всякий раз, когда создается новый экземпляр моего приложения (т. е. новый Starter()), я хочу, чтобы у него была собственная база данных и собственный планировщик, который будет обращаться к одной и той же базе данных. Создание базы данных одноэлементного класса не является решением здесь bcz, это подразумевает, что каждый новый Starter() будет использовать одну и ту же базу данных. я хочу, чтобы каждый новый Starter() имел свою собственную базу данных – anzaan