Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Кстати прикол 11.04.08 11:18 Число просмотров: 2305
Автор: PS <PS> Статус: Elderman
|
Рефакторю код одной системы, где событиям и сообщениям самое место.
В начале работы тихо офигел от того, что нет ни одного класса, в названии которых встретилось бы одно из этих слов!
Зато половина классов в названии содержат слово Notify ;)
Вот таким красивым способоми человек обошел проблему названий.
С моей точки зрения ответ на мой вопрос кроется несколько глуюбже, чем мы его попытались тут рассмотреть.
Дело в том, имхо, что как в самом вопросе, так и в его обсуждении произошло смешение двух понятий: объектов реального мира, и программных моделей этих объектов.
Ведь что такое "событие" в реальном мире? В словаре написано "то, что произошло, случилось". Однако, еще в школе нас учили не давать определения через "то что". А попробуйте дать определение событию без этого паттерна :) Дело в том, что слово "событие" выглядит как существительное, типа "яблоко" или "автомобиль". Однако при этом описывает не сущность в физическом мире, а некоторое действие. В трансформационной грамматике такие слова называются "номинализациями".
Это касательно реального мира. Теперь, что мы видим в программной модели. А здесь событием называют информацию о том ("о том" - выделенно и подчеркнуто) что произошло. Мы можем написать письмо о том..., мы можем послать сообщение о том..., мы можем сгенерировать эвент о том....
В отличии от реального мира, программное событие - это просто сообщение.
Дело в том, что в программном мире есть данные, и методы работающие с данными - существительные и глаголы :) Номинализаций в программном мире - нет. Любая номинализация, при попытке её "запрограммировать" превращается либо в метод, либо в данные.
Отсюда можно сделать вывод - слово Event, хоть и звучит красиво, но с точки зрения модели денных в программе - абсолютно бесполезно. Его синонимом (в программном мире) является слово message, использование которого не внесет путаницы ни при проектировании системы, ни при чтении кода.
|
|
|