Страницы

Поиск по вопросам

среда, 3 апреля 2019 г.

Один экземпляр класса

Как эффективно реализовать создание только одного экземпляра класса? Необходимо чтобы создавать можно было только один объект. Вот что получилось у меня
class Loader{ private static int id = 0; static Loader newLoader(){ if(id == 0){ id++; return new Loader(); } else return null; } private Loader(){
} }
Насколько это правильно? И Можно ли сделать так, чтобы метод newLoader() не возвращал null в случае наличия уже созданного объекта, а присваивал ссылке тот же объект? То есть чтобы ссылка на объект не терялась.


Ответ

Вы "изобрели" singleton, в интернете полно примеров реализации.
Самый простой пример:
public class Singleton { private static Singleton instance;
public static synchronized Singleton getInstance() { if (instance == null) instance = new Singleton(); return instance; } }

Комментариев нет:

Отправить комментарий