нетЙа гений? =)
Вообще -для меня синглтон это некий объект в котором присутствует ф-я singleton() - которая возвращает единую копию объекта для работы в любом месте кода. А нафига нам это копия, если можно работать с его переменными и функциями напрямую, ни чего не создавая? Ведь фактически синглтон это некая капсула, от которой требуется только возможность быть глобальной в любом месте скрипта.Если ты сделаешь синглтон с использованием статических переменных, сингтоном от этого быть не перестает.
И каким же тебя monostate избавит от такой необходимости?И инкапсуляция сохранится и в каждой ф-и объекта не нужно будет эту копию извлекать для работы....
эээ...Вообще -для меня синглтон это некий объект в котором присутствует ф-я singleton() - которая возвращает единую копию объекта для работы в любом месте кода. А нафига нам это копия, если можно работать с его переменными и функциями напрямую, ни чего не создавая?
Ну извени,конечно, но про такой паттерн я не слышал.Во-первых, то, о чем ты тут бормочешь, есть ни что иное, как Monostate pattern.
То и значит. В любом случае когда ты пишешь new className ты создаёшь копию. Не зависимо от того сколько штук этого класса имеется.Во-вторых, что значит в копии объекта? синглтон всегда один!
Хм...Обычным. Если все свойства данного класса будут иметь тип static, то работать с этими данными можно будет в любом месте через className либо self.И каким же тебя monostate избавит от такой необходимости?
Что такое статические переменные я знаю. Потому как частенько их применял в ПХП4. А вот то, что такое синглтон, не спорю, не понял до конца. И вообще. Не совсем понятно зачем резко понадобится использывать синглтонный класс как мультитонный.Ты не знаешь, что такое статические переменные.
Ну эта проблема решается выставлением флага.В статической переменной ты не можешь проконтролировать, что объект был сконструирован перед использованием.
А почему бы и нет? Если эти методы публичные, то и обращаться к ним можно откуда угодно.Т.е. предполагается тупо обращаться к публичным статическим свойствам, и к публичным статическим методам ДРУГОГО класса?
Все правильно. Для сингтона конструкция new className вызывается максимум единожды. И хорошо сделанный сингтон не позволит сделать это больше одного раза, как ни крути.То и значит. В любом случае когда ты пишешь new className ты создаёшь копию. Не зависимо от того сколько штук этого класса имеется.
это ты кому-нибудь другому расскажи.Что такое статические переменные я знаю.
Флага, который будет проверяться при вызове каждого метода?Ну эта проблема решается выставлением флага.
Хм. Можно услышать не только констатацию факта, но и объяснение, чего я не понимаю ?это ты кому-нибудь другому расскажи.
В классическом примере (лично для меня) к свойствам класса обычно идёт обращение через self::getVariableName();Да и какой флаг может быть, если первое же обращение может идти к св-ву класса?
А вот об этом я не подумал. Один минус нашли 8)Флага, который будет проверяться при вызове каждого метода? Мосье извращенец?
О том, что такое статические переменные и статические св-ва/члены класса, можно узнать в документации.Хм. Можно услышать не только констатацию факта, но и объяснение, чего я не понимаю ?
Цитировать документацию мне не нужно.О том, что такое статические переменные и статические св-ва/члены класса, можно узнать в документации
cDLEON, долго думал?Вот недавно начал кодить без поддержки ПХП4.
Есть такой принцип ООП - инкаспуляция.Ну эта проблема решается выставлением флага.