Хочу немного рассказать об одном из самых стоящих структурных фреймворков которых я видел.
Изначально он был написан для AS3, но позже переписан для AS2, C#, ColdFusion, Haxe, Java, JavaScript, Objective C, PHP, Python и Ruby. Список внушительный, но чем же он так хорош? Как следует из названия автор постарался воплотить один из самых известных патернов в жизнь (хотя и далеко не единственный из там используемых).
Update:
PureMVC – это компактный прикладной фреймворк, позволяющий разместить множество задач, разбитых на 3 составляющих, со слабой связанностью и удобным движком событий.
Basics
Обычное PureMVC приложение состоит из класса Facade, набора команд, медиаторов, прокси и визуальных компонент. Программист напрямую не работает ни с классом Model, ни с Controller, ни с View; для этого он создает уже локальные, разбитые на подзадачи классы Proxy's, *Command's, Mediator's.Контроллер кеширует ссылки на классы Команд, создавая экземпляры класса команды в тот момент, когда возникает необходимость выполнения этой команды и уничтожая после выполнения.
Модель просто кэширует именованные ссылки к Прокси. Код Прокси манипулирует моделью данных, связываясь с удаленными сервисами, если нужно сохранить или запросить данные. Таким образом, Модель данных изолирована от контроллеров и представления. Это приводит к переносимому коду Модели.
Представление в первую очередь кэширует именованные ссылки на Медиаторы. Код Медиатора обслуживает компонент(ы) Представления, добавляя к ним Слушателей событий и от их имени отправляя и получая оповещения к и от остальной системы, при этом непосредственно управляя их состоянием.Что касается циркуляции событий, тут все проходит наредкость просто, через одно место по строковому идентификатору.
Вам не нужно беспокоиться о деталях реализации Наблюдателя/Оповещения в PureMVC; это внутренняя часть фреймворка. Вам нужно только использовать простой метод для отправки Оповещений от Прокси, Медиаторов, Команд и Фасада, который даже не требует создавать экземпляр Оповещения.Впрочем, поскольку в 2 словах все не объяснишь, советую скачать доку (она там называется Best Practices). Там даже недавно появилась русская версия. А так же посмотреть пример на близком для Вас языке.
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.