Как уже упоминал seanizer, вы бы реализовали что-то, что уже было сделано, но, если у вас есть только один класс, который вас беспокоит, добавление нового jar-файла и использование его для такой тривиальной операции кажется мне излишним.
Простой подход состоит в том, чтобы иметь массив из n (3-5) и иметь частный конструктор в вашем классе "singleton". Тогда у вас будет метод instanceOf
, который является единственным способом получить объект.
Этот метод проверяет, является ли количество созданных объектов
Но что вы хотите сделать, если все объекты уже выданы?
Вы должны быть уверены, что объект будет возвращен обратно в пул, когда вы закончите с ним, в противном случае у вас закончатся объекты для раздачи.
Когда вы раздаете объект, вы можете скопировать его в коллекцию или массив, чтобы узнать, что он уже отсутствует, или просто иметь массив с логическим значением n, равным true, когда объект доступен для передачи. вне.
Основной дизайн прост, сложность заключается в том, как обрабатывать условия, которые могут быть ошибочными, в остальной части вашей программы.
Кроме того, вам необходимо убедиться, что вы используете блок finally
для возврата объекта обратно, чтобы в случае исключения объект все еще возвращался.