В этой статье не процитировать какие - либо источники . ( январь 2017 г. ) ( Узнайте, как и когда удалить это сообщение-шаблон ) |
Оригинальный автор (ы) | Клиффорд Холл |
---|---|
Разработчики) | Futurescale, Inc. и сообщество PureMVC |
Стабильный выпуск | 2.0.4 / 14 августа 2008 г. |
Написано в | ActionScript , C ++ , C # , ColdFusion , Dart , haXe , Java , JavaScript , Objective-C , Perl , PHP , Python , Ruby , Swift , TypeScript |
Операционная система | Кроссплатформенность |
Тип | Рамки |
Лицензия | 3-пункт BSD |
Интернет сайт | puremvc |
PureMVC - это платформа для создания приложений на основе хорошо зарекомендовавшего себя шаблона проектирования модель – представление – контроллер (MVC) . Бесплатная среда с открытым исходным кодом была первоначально реализована на языке ActionScript 3 для использования с Adobe Flex , Flash и AIR , а с тех пор была перенесена почти на все основные платформы веб-разработки.
Реализации [ править ]
Стандартная версия [ править ]
Уровни приложения Модель, Представление и Контроллер представлены тремя Синглетонами (класс, из которых может быть создан только один экземпляр).
В MVC Singletons Поддерживайте имени кэши из Proxies , медиаторов и команд , соответственно. Фасад , также Singleton, обеспечивает единый интерфейс для обмена данных по всему приложению. Эти четыре синглтона называются основными участниками.
- Объекты данных, будь то локальные или удаленные, управляются прокси.
- Компоненты представления, составляющие пользовательский интерфейс, управляются посредниками.
- Команды могут взаимодействовать с Прокси, Медиаторами, а также запускать или выполнять другие Команды.
Все участники обнаруживают и общаются друг с другом через фасад, а не работают напрямую с моделью, представлением и контроллером.
PureMVC также представляет схему уведомления Observer в стиле публикации / подписки . Это обеспечивает асинхронный, управляемый событиями обмен данными между участниками системы, а также способствует слабой связи между этими участниками, поскольку подписчику никогда не нужно напрямую знать об издателе.
Реализация справочника стандартной версии написана на ActionScript 3.
Версия MultiCore [ править ]
Этот вариант поддерживает модульное программирование, позволяя использовать независимые программные модули, каждый со своим собственным независимым ядром PureMVC. Ядро - это набор из четырех основных действующих лиц, используемых в стандартной структуре (модель, представление, контроллер и фасад). Эта версия фреймворка использует мультитоны вместо синглтонов. Вместо того, чтобы хранить один экземпляр класса, Multiton хранит карту экземпляров. На каждое ядро ссылается связанный многотонный ключ.
Версия MultiCore платформы была разработана из-за повсеместной потребности в модульной поддержке в мире все более амбициозных многофункциональных Интернет-приложений, которые должны загружать и выгружать большие части функциональности во время выполнения. Например, приложению КПК может потребоваться динамическая загрузка и выгрузка модулей для управления списком задач, календарем, электронной почтой, контактами и файлами. «Многоядерная» версия облегчает модульное тестирование.
Реализация эталонной версии MultiCore написана на ActionScript 3.
Порты [ править ]
Существует несколько активных портов PureMVC - реализаций для различных языков программирования, каждый из которых внесен и поддерживается членами сообщества PureMVC. Каждый порт, в свою очередь, поддерживает одну или несколько целевых платформ разработки, которые охватывают большинство основных мобильных, браузерных, настольных и серверных сред.
Язык | Цели | Стандартная версия | Версия MultiCore |
---|---|---|---|
ActionScript 2 | Flex 1.5, Flash 8, FlashLite | [1] | |
ActionScript 3 | Flex 2, Flex 3, Flex 4, Flash 9+, AIR (все версии). Оригинальные эталонные реализации PureMVC | [2] | [3] |
C ++ | Поточно-ориентированный. Скомпилировать с: MSVC 8.0 / 9.0 / 10.0, MinGW 3.4.5, GNU G ++ 4.0, Embarcadero C ++ 6.21 (MFC, WTL, wxWidgets, Qt ...) | [4] | |
C # | .NET Core, Windows 10, Xamarin, Xbox, Kinect, HoloLens, Surface Neo | [5] | [6] |
Холодный синтез | ColdFusion 8 | [7] | |
Дротик | Google Dart | [8] | |
Идти | Google Go | [9] | [10] |
Haxe | JavaScript, Flash 8, Flash 9, Neko VM, Hashlink VM, PHP, Lua, Python, ActionScript 3, C ++, Java, C #, NodeJS [11] | [12] | [13] |
Ява | Java Mobile, Standard и Enterprise Edition (ME, SE, EE), JavaFX, сервлеты, апплеты и GWT | [14] | [15] |
JavaScript | Браузер нейтральный. Собственный порт JavaScript MultiCore работает со всеми другими фреймворками. (Предыдущие сторонние зависимые порты устарели). | [16] | |
Котлин | Android | [17] | |
Цель-C | Apple iPhone и Mac | [18] | |
Perl | Perl 5 | [19] | [20] |
PHP | PHP 5 | [21] | [22] |
Python | Python 2.5 для wxPython, Google App Engine, Pyjs [23] | [24] | [25] |
Рубин | Рубин | [26] | |
Быстрый | Быстрый | [27] | [28] |
Машинопись | Машинопись | [29] | [30] |
Внешние ссылки [ править ]
- Официальный веб-сайт
- Общие сведения о платформе с открытым исходным кодом PureMVC на ActiveTuts +
- Консоль PureMVC от Kap Labs
- Алгоритмист на PureMVC
- Сервер интеграции WebORB (WebORB для .NET, WebORB для Java, WebORB для PHP) включает генерацию кода PureMVC