Цепочки объектов.

grigori

( ͡° ͜ʖ ͡°)
Команда форума
на самом деле пошел офтоп, т.к. участники не сделят ни за темой, ни за контекстом постов, на которые они отвечают
 

С.

Продвинутый новичок
grigori
просите выслать Вам архив реального работающего проекта?
В самом деле не понимаешь разницу слов "цитата" и "архив", или такой ответ нужно понимать, как "элегантное" признание невозможности предоставить доказательства?

StUV
вот скажите мне товарищи-отрицатели-исключений - вы в c++ или java тоже используете строки с ошибками ?
или считаете что только в пхп исключения не нужны, а в других языках - их вполне можно использовать ?..
Можно было и не переспрашивать. По моей оговорке и так понятен критерий - дело не в языке, а в специфике работы приложения. Я лично не уверен, что для приложения, которое будет работать несколько миллисекунд, нужно строить замысловатую среду. А на построение этой среды тратить ресурсов чуть ли не больше, чем на само приложение. ООП ради ООП получается.
 

kruglov

Новичок
ООП, в первую очередь, есть средство облегчения разработки (отладки, модификации) программ.

В том числе путем ограничений, удерживающих программиста в неких рамках, в пределах которых у него меньше шансов "напортачить".
 

dark-demon

d(^-^)b
программист без головы напортачит даже сидя в камере 3х4. :)

а ооп ради ооп - и в правду зло. не надо стремиться сделать идеальную объектную модель - не получится. надо будет в хуморе открыть вертку посвященную ооп-перлам :)
 

kruglov

Новичок
dark-demon
Ну, это само собой. Безголовых программистов, а также обезьян с гранатами давайте не будем привлекать в качестве аргументов.

-~{}~ 24.05.07 22:31:

Ну, в принципе, я обычно пользуюсь ООП тогда, когда мне это надо (наследование, к примеру).

Тот же phpclasses не принимает скрипты без классов внутри. А почему? Потому что класс - автоматически (если программист не безголовый) - это интерфейс, это методы, которые говорят, что можно с этим классом делать. Это практически сам себя документирующий код.

Я когда к ним один скрипт публиковал, по-первости написал его без классов и функций, типа из ini-файла данные взял, что-то там нагенерил, в сессию записал и закончил работу. Попросили меня переписать на ООП. Переписал. Тоже думал сначала - вот глупости, тут-то зачем классы. А потом самому понравилось - вот этим методом (конструктором) мы генерим, вот этим методом результат получаем. А в сессию уже внешний код пишет, если ему нужно. Или не в сессию, а в базу. Или еще куда. Теперь этот скрипт многие проекты используют, нахваливая, как в нем все просто и очевидно.

Лучше стал скрипт.
 

С.

Продвинутый новичок
Попросили меня переписать на ООП. Переписал. (...) А потом самому понравилось - вот этим методом (конструктором) мы генерим, вот этим методом результат получаем.
А против ООП вообще никто и не выступал в даной ветке. Говорилось про ООПные навороты, привлекаюшиеся из принципа, там где они не нужны.

Какой логический смысл громоздить отлавливание ошибок, если все они фатальные и пользователь их все равно не устранит самостоятельно?

Если все свойства класса задаются в конструкторе, а метод только один, то эта штука называется "функция" (для тех, кто забыл). Кода меньше, использование нагляднее, отлаживается проще.
 

zerkms

TDD infected
Команда форума
Какой логический смысл громоздить отлавливание ошибок, если все они фатальные и пользователь их все равно не устранит самостоятельно?
добавить запись в лог с подробностями ошибки, а пользователю показать красивую картинку

Если все свойства класса задаются в конструкторе, а метод только один, то эта штука называется "функция"
функция не может заменить класс, даже такой "простой"
 

dark-demon

d(^-^)b
добавить запись в лог с подробностями ошибки, а пользователю показать красивую картинку
для этого предназначена trigger_error.

Если все свойства класса задаются в конструкторе, а метод только один, то эта штука называется "функция"
функция не может заменить класс, даже такой "простой"
из функций хорошие синглетоны получаются :)
 

zerkms

TDD infected
Команда форума
dark-demon
для этого предназначена trigger_error.
trigger_error по определению не сможет предоставить столько же информации, сколько и эксепшн

из функций хорошие синглетоны получаются
как связан синглтон и класс? как можно сравнивать по определению разные термины? или я отстал от жизни?

не стоит собственный неудачный опыт распространять на всех ;)
 

Crazy

Developer
Автор оригинала: zerkms
как связан синглтон и класс? как можно сравнивать по определению разные термины? или я отстал от жизни?
Скажу страшную вещь: если при проектировании возникает синглетон с единственным методом, то при отображении дизайна на код он вполне может быть реализован функцией.
 

zerkms

TDD infected
Команда форума
Crazy
вещь ужасная угу, в этом случае ты переносишь функциональность МЕТОДА в ФУНКЦИЮ, а не КЛАССА полностью. класс - это ещё и предки, и свойства.

-~{}~ 25.05.07 20:20:

синглетон с единственным методом
с каких пор однозначно можно сказать что синглтон == класс???
 

Crazy

Developer
Автор оригинала: zerkms
вещь ужасная угу, в этом случае ты переносишь функциональность МЕТОДА в ФУНКЦИЮ, а не КЛАССА полностью. класс - это ещё и предки, и свойства.
Я вроде как вполне однозначно сказал:

если при проектировании возникает синглетон с единственным методом
Свойства я определенно не упоминал. Что касается предков -- то вот это как раз здесь не имеет значения. Скажу больше -- зачастую можно и более сложные синглетоны реализовать как наборы фукнций.

с каких пор однозначно можно сказать что синглтон == класс???
Не хотел бы тебя огорчать, то Singleton Design Pattern изначально сформулирован в терминах ООП. Итак, классическое определение:

If a system only needs one instance of a class, and that instance needs to be accessible in many different parts of a system, you control both instantiation and access by making that class a singleton.
Так что с самом паттерном неясностей нет. Интересные нюансы начитаются, когда применяешь ООП-паттерны в не-ООП языке. Вот здесь-то и появляются интересные неочевидные решения.
 

zerkms

TDD infected
Команда форума
If a system only needs one instance of a class, and that instance needs to be accessible in many different parts of a system, you control both instantiation and access by making that class a singleton.
отличное определение - из него следует что класс является синглтоном самого себя
очень хотелось бы услышать о практической пользе класса-синглтона, состоящего из 1 метода - который возвращает инстанцию себя
 

StUV

Rotaredom
очень хотелось бы услышать о практической пользе класса-синглтона, состоящего из 1 метода - который возвращает инстанцию себя
я думаю, очевидно, что подразумевался еще один метод кроме "getInstance"
 

Crazy

Developer
StUV, если мы реализуем через функцию, то как раз getInstance нам ни к чему. Поскольку инстанс у нас уже есть. :)
 

Crazy

Developer
Автор оригинала: zerkms
очень хотелось бы услышать о практической пользе класса-синглтона, состоящего из 1 метода - который возвращает инстанцию себя
Ответ на твой вопрос -- в моем предыдущем посте. JFYI: про проектировании диаграммы классов здоровые головой люди назначают синглетону стереотип "Singleton". Если человек пририсовывает ему метод getInstance -- это уже что-то с головой. Или учили не тому и не там.

Метод getInstance появляется уже непосредственно в коде, если мы решили реализовать синглетон классом. BTW, этот метод не обязан появляться в том же класса, хотя как правило это удобно. :)
 

zerkms

TDD infected
Команда форума
Crazy
начали как говорится за здравие, ...

Метод getInstance появляется уже непосредственно в коде, если мы решили реализовать синглетон классом. BTW, этот метод не обязан появляться в том же класса, хотя как правило это удобно.
из этого следует, что ты соглашаешься что классы удобнее функций? если да, то к чему ты вообще затеял этот спор?
 
Сверху