2004-gre-cs-practice-book.pdf/Q54
Материал из DISCOPAL
Вопрос: Q54-4c9f66
Шаблон проектирования Singleton используется, чтобы гарантировать, что может быть создан только один экземпляр класса.
Что из приведенного ниже верно для этого шаблона проектирования?
- Класс Singleton имеет статический фабричный метод для cоздания своего экземпляра.
- Класс Singleton может быть подклассом другого класса.
- У класса Singleton приватный конструктор.
Ответы
- Только 1
- Только 2
- Только 3
- 1 и 3
- Правильный ответ: 1, 2, 3
Объяснение
Исходники — вопрос 54 на 37 странице книги «2004-gre-cs-practice-book.pdf»
- «…статичный фабричный метод…» — обычно да, почти всегда есть.
- «приватный конструктор» — ну обычно да, если язык позволяет (не питон там), чтобы не наследовались и не обходили защиту от одиночки. Но вот утверждать на 100% как-то неправильно.
- «может быть подклассом» — вот блин, не уверен. Т.е. «Permits refinement of operations and representation. The Singleton class may be subclassed, and it's easy to configure an application with an instance of this extended class.»
Т.е. вижу проблему. Тут конечно все утверждения не совсем 100%, но либо требовать наличие приватного конструктора, либо разрешать сабклассинг (в языках с приватным конструктором), а в оригинале теста разрешали все варианты.
[ Хронологический вид ]Комментарии
Войдите, чтобы комментировать.