Беларусь + FemTech = ❤️? Stork целится в миллион установок
Support us

PureMVC

25 комментариев
PureMVC
Хочу немного рассказать об одном из самых стоящих структурных фреймворков которых я видел. Изначально он был написан для 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). Там даже недавно появилась русская версия. А так же посмотреть пример на близком для Вас языке.
Advance
Для тех же кто уже сталкивался с этим фреймворком, посоветую иногда заглядывать на оф-сайт. Там появляются интересные дополнительные классы вроде "асинхронных команд" или "State Machine". Асинхронные команды, например, позволяют задать последовательность (как в MacroCommand), только выполняться каждая последующая будет после вызова завершения у предыдущей. Official site PS Рисунок кликабельный
Читайте также
Python больше не самый популярный на GitHub. Его сменил очень молодой язык
Python больше не самый популярный на GitHub. Его сменил очень молодой язык
Python больше не самый популярный на GitHub. Его сменил очень молодой язык
7 комментариев
В России русифицировали JavaScript
В России русифицировали JavaScript
В России русифицировали JavaScript
7 комментариев
Apple открыла Swift для разработки Android-приложений
Apple открыла Swift для разработки Android-приложений
Apple открыла Swift для разработки Android-приложений
Самый популярный навык для ИТ-карьеры — не ИИ и даже не Python
Самый популярный навык для ИТ-карьеры — не ИИ и даже не Python
Самый популярный навык для ИТ-карьеры — не ИИ и даже не Python

Хотите сообщить важную новость? Пишите в Telegram-бот

Главные события и полезные ссылки в нашем Telegram-канале

Обсуждение
Комментируйте без ограничений

Релоцировались? Теперь вы можете комментировать без верификации аккаунта.

Комментариев пока нет.