Re[5]: класс Singleton - разобрался, но где в "жизни" примен
От: mkizub Литва http://symade.tigris.org
Дата: 24.07.07 13:58
Оценка:
Здравствуйте, prVovik, Вы писали:

M>>Например пул потоков. Очевидно что для эфективности такой объект должен жить в одном экземпляре.


V>Жить в одном экземпляре и синглтон — это не одно и тоже.


Конечно это разные вещи. А вот жить гарантированно в одном экземпляре — это одно и то-же.

V>Обычно под синглтоном понимают конкретную его реализацию (я имею ввиду со статическим методом).


То есть ты себе что-то понимаешь, и с этим чем-то споришь.

V>Чем это лучше варианта, когда доступ к объекту получаем не через статический метод класса, а через обычный метод обычного объекта?


Тем, что есть вещи семантически уникальные. Как только их становится несколько — это нарушение контракта и дизайна.
Чаще всего таких объектов вообще не надо иметь (в смысле — не обязательно их иметь). Раз он один, уникальный, то и не нужен он.
Единственный существующий пул тредов можно заменить набором статических методов и переменных.
List.Nil можно заменить чем-то вроде нулевого указателя и т.д.
А шаблон singleton применяют в случаях, когда дизайн (приложения, библиотеки, метода) требует объекта, инстанса — просто
нужно передать ссылку на объект. Т.е. ограничение языка программирования, его средств. Шаблонные решения потом, зачастую,
входят в сам язык программирования. Скажем, singleton вошёл в Scala как object (в отличие от их class-а).
Вошёл именно потому, что это действительно самантическая и удобная абстракция, а не какой-то buzz-word.
SOP & SymADE: http://symade.tigris.org , блог http://mkizub.livejournal.com
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.