какие преимущества это дает и в каких случаях стоит прибегать к подобному способу? Заранее спасибо за ответ
OrmaJever
Отправлено: 31 Июля, 2011 - 15:27:12
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
[url]http://ru.wikipedia.org/wiki/Одиночка_(шаблон_проектирования)[/url]
с таким вызовом всегда будет только 1 копия обьета.
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
LIME
Отправлено: 31 Июля, 2011 - 15:41:02
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
ole-martyno еще тут надо было объявить приватным конструктор и клон чтоб уж до конца шаблон реализовать
если "на пальцах " то тогда нельзя будет создать объект кроме как используя метод инстанс
а в нем проверяется если уже был создан объект то он и возвращается если нет то создается
Roler
Отправлено: 31 Июля, 2011 - 16:26:57
Посетитель
Покинул форум
Сообщений всего: 458
Дата рег-ции: Авг. 2008 Откуда: Россия
Помог: 1 раз(а)
Паттерн "Singleton"
White
Отправлено: 31 Июля, 2011 - 17:09:52
Частый посетитель
Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011 Откуда: Днепропетровск
Помог: 28 раз(а)
синглтон часто используют для передачи данных между функциями и объектами разных классов (взамен global), так как объект при этом статичен, и может быть получен с помощью $class= newClass::Instance(); внутри любой функции. иногда также используют в качестве логгеров.
П.С. ИМХО, если все свойства и методы объекта этого класса предопределены самим классом, и динамически не добавляются, можно просто сделать приватный конструктор, таким образом запретив создание объектов вообще, а самому классу дать необходимые статичные свойства, и управлять ими в контексте класса с помощью self
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.