Singleton

  • 8
  • Недоступна
Класс реализует паттерн Singleton, если позволяет создать всего один объект своего типа. Вам нужно создать класс Singleton в отдельном файле, добавить в него статический метод getInstance (он должен возвращать один и тот же объект класса при любом вызове). Подумайте, каким образом можно запретить создание других объектов этого класса.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (54)
  • популярные
  • новые
  • старые
Для того, что бы оставить комментарий вы должны авторизоваться
mr_chepel16 уровень, Москва
30 января, 08:50
Ничего не понял, что от меня хотят в этом задании. Пошел читать про про Singleton на википедии. Там все разжевано с примерами.
Алексей20 уровень
3 января, 19:43
Если делать в idea, то слишком легко =)
Мишаня17 уровень
5 декабря 2018, 12:19
условия хер разобрать с первой попытки. в итоге нужно запретить создания класса и сделать один реквизит с уже созданным классом и гетером его получать . тут все ясно и небольшой конструктор делаем на запрет private Singleton ( ){ final Singleton instance1 = getInstance(); }
IceBerg25 уровень, Днепр
21 декабря 2018, 18:02
А зачем нужна строка " final Singleton instance1 = getInstance();"? Я конструктор пустым оставил, просто сделал его private.
Vitaly Khan35 уровень
22 ноября 2018, 04:53
не пробегайте эту задачку галопом. хорошенько осмыслите и запомните. это важная часто встречающаяся конструкция. так и называется, паттерн Синглтон.
Igor18 уровень, Киев
15 сентября 2018, 16:27
По соглашению (где-то читал не раз) константы пишутся ЗАГЛАВНЫМИ буквами. Так и сделал и поплатился за это - 1-ой попыткой здачи задачи. А вообще, не сложно, на Вики есть статья. Просто и доходчиво (в стиле Singleton :) ). Паттерн Singleton
Алексей Кравчук15 уровень, Минск
23 января, 19:30
Вы попутали с final
Konstantin17 уровень
2 сентября 2018, 10:41
Я не очень понял. Назвал singleton, компилятор сообщил, что должна быть именно instance. А разве где-то написано, что переменная обязательно должна называться instance?
verdy25 уровень
22 сентября 2018, 16:52
Условие/Требования/3. Класс Singleton должен содержать приватное статическое поле instance типа Singleton.
Роман15 уровень
20 ноября 2018, 13:10
такая же беда, потратил попытку из-за того, что в условиях не указывают обязательные условия, только в требованиях(((
Вагиф23 уровень, Санкт-Петербург
30 августа 2018, 13:22
Вот тут показано и написано доступным языком: Singleton
Georgy19 уровень, Минск
15 июля 2018, 15:52
Здесь хорошо написано про Singleton: https://habr.com/post/27108/ Задача не сложная.
Danila Bogdanov20 уровень, Уфа
30 июля 2018, 22:19
Александр Толкачёв22 уровень, Санкт-Петербург
31 августа 2018, 11:33
ллгс
Даниил Полищук22 уровень, Москва
13 июля 2018, 17:03
http://www.javenue.info/post/2 Хорошо объясняется про этот паттерн + есть готовый код, если совсем тяжко.
Andrei Pilipuk26 уровень, Киев
11 июля 2018, 08:10
Объясните пожалуйста мне эту строку кода: private Singleton(){}
Даниил Полищук22 уровень, Москва
13 июля 2018, 17:05
Объявление конструктора класса. Модификатор private, чтобы не могли создаваться экземпляры этого класса.
Igor18 уровень, Киев
15 сентября 2018, 16:41
Не так, Даниил. Экземпляры этого класса, с таким конструктором, создавать можно и бесконечно. Модификатор private, обозначает возможность создания объекта (экземпляра класса) только изнутри этого класса. В нашем случае - это метод getInstance. А далее в коде мы создаем константу с ссылкой на объект. Ну, а как должно быть уже известно, начинку константы изменить нельзя. Таким образом мы получаем единственный объект класса в константе с модификатором private и пользователь может может получить доступ к ней только геттером getInstance. Что-то я немного затянул. Кому и так понятно, не читать до конца.