При использовании Typed Message сообщения рассылаются всем адресатам, подписанных на получение сообщения.
Проблема возникает, когда сообщение не нужно посылать всем адресатам, если оно не может быть принято одним из них. Например, в каркасе приложения главное окно должно закрыться, и посылает всем дочерним окнам сообщение о закрытии, но какое-то дочернее окно не может закрыться прямо сейчас, соответственно адекватным поведением было бы прекращение дальнейшей рассылки сообщения о закрытии и отмене закрытия главного окна.
Существуют ситуации, когда рассылка одного и того же сообщения должна происходить избирательно по адресатам, например, учитывая их состояние. Читать далее »»
Сразу извиняюсь за неадекватное поведение и офтоп. Похоже моя идея все-таки заинтересовала некоторых сообщников. Частью технологии предполагаеться создание (в относительно далеком по ИТ-меркам будущем) "идеального" ЯП (языка программирования). С целью выяснения сильных и слабых сторон существующих технологий предлагаю следующий флеш-моб (покритикуй свой ЯП). Сейчас каждый желающий оставляет коммент следующего содержанию: ЯП (технология, которую вы знаете лучше всего и чаще всего используете), ее недостатки, которые больше всего вам НЕ нравятся. Огромная просьба ругать любимую технологию, поскольку ругать чужое легко и необъективно.
PS: Офтопы будут беспощадно убиваться. Просьба не засорять тему.
Иногда, скорость - это все. В таких случаях приходится избавляться от всего замедляющего работу. Бывает, что приходится отказываться и от элегантности архитектуры. Именно так бывает если приходишь к выводу, что для ускорения необходимо избавиться от таблицы виртуальных функций.
Предлагаю Вашему вниманию способ "виртуальных функций на этапе компиляции". Этот подход не перекрывает всю функциональность виртуальных функций, но часто его возможностей достаточно.
Итак код: Читать далее »»
Прочитал статью "10 Programming Languages You Should Learn Right Now"
Список автора таков:
1. PHP
2. C#
3. AJAX (Asynchronous JavaScript and XML)
4. JavaScript Читать далее »»
В предыдущей заметке были исправлены ошибки эталонной реализации паттерна проектирования Typed Message. Далее речь пойдет о способе применения паттерна на тривиальном примере на C++.
Как упоминалось ранее, с помощью Typed Message можно определять сущности широковещательных сообщений. Подходящая аналогия для таких сущностей - радиоволны в идеальном радиоэфире.
Постановка задачи
Читать далее »»
Паттерн был опубликован в классической работе Влиссидеса в далеком 1997 году как вариация известного всем Observer.
В отличие от Observer, паттерн Typed Message полагается не на ручную диспечеризацию сообщений с помощью dynamic_cast, а на автоматическую проверку типов компилятором. Именно это свойство Typed Message делает этот паттерн лучшей релизацией идеи широковещательных сообщений на подобии Observer.
При попытке использовать реализацию предложеную Полом Пелетье в той же работе Влиссидеса пользователь сталкивается с неприятностями ввиде выделения лишней памяти, краха процесса и просто неудобства работы с шаблоном. Читать далее »»
