Дапамажыце dev.by 🤍
Падтрымаць

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-канале

Абмеркаванне
Каментуйце без абмежаванняў

Рэлацыраваліся? Цяпер вы можаце каментаваць без верыфікацыі акаўнта.

Каментарыяў пакуль няма.