Показать сообщение отдельно
Старый 14.01.2004, 23:33     # 28
Saruman
::VIP::
 
Аватар для Saruman
 
Регистрация: 12.11.2002
Адрес: Nicosia, Cyprus
Сообщения: 1 285

Saruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman Гуру
shuron
Путь наименьшего сопротивления 8)
Берешь в аттаче файл singleton - это скрипт, реализующий на php данный паттерн. Затем думаешь, какие объекты в твоем дизайне должны существовать в единственном экземпляре. Затем работаешь следующим образом.
1. Сначала инициализируешь singleton:
PHP код:
require_once('singleton.php');
singleton::init(); 
2. Затем, при инстанцировании объекта, делаешь это не напрямую, а через паттерн:
PHP код:
$myObject =& $GLOBALS['SINGLETON']->getInstance(myObjectClassName); 
Если у тебя этот объект еще не существовал - он будет создан. В дальнейшем все запросы будут получать ссылку на _уже_имеющийся_ объект, не создавая новые экземпляры того же класса.

PS: на phpclasses.org есть более новая версия singleton.php, но она значительно переписана и наследуется от PEAR. Зачем это сделано я еще не разбирался, если есть интерес - качай и смотри. Общий принцип должен быть тем же самым.

PPS: сходи в книжный магазин и найди книгу Эриха Гаммы "Паттерны проектирования". Прочитай - узнаешь много полезного.
__________________
"If people only knew how hard I work to gain my mastery, it wouldn't seem so wonderful at all." Michelangelo Buonarroti
Saruman вне форума