Автор (ы) | Клиффорд Холл |
---|---|
Разработчик (и) | Futurescale, Inc. и Сообщество PureMVC |
Стабильный выпуск | 2.0.4 / 14 августа 2008 г. (2008-08-14) |
Написано на | ActionScript, C ++, C#, ColdFusion, Dart, haXe, Java, JavaScript, Objective-C, Perl, PHP, Python, Ruby, Swift, TypeScript |
Операционная система | Кросс-платформенная |
Тип | Framework |
Лицензия | 3 пункта BSD |
Веб-сайт | puremvc.org |
PureMVC - это среда для создания приложений на основе хорошо зарекомендовавших себя модель – представление – контроллер (MVC) шаблон проектирования. Бесплатная среда с открытым исходным кодом изначально была реализована на языке ActionScript 3 для использования с Adobe Flex, Flash и AIR, а также с тех пор перенесен почти на все основные платформы веб-разработки.
Уровни приложения Модель, Представление и Контроллер представлены тремя Синглетонами (класс, из которого может быть создан только один экземпляр).
Синглтоны MVC поддерживают именованные кеши прокси, посредников и команд соответственно. Фасад, также являющийся синглтоном, обеспечивает единый интерфейс для связи во всем приложении. Эти четыре синглтона называются основными участниками.
Все участники обнаруживают и общаются друг с другом через фасад, а не работают напрямую с моделью, представлением и контроллером.
PureMVC также представляет схему уведомлений в стиле публикация / подписка Observer. Это обеспечивает асинхронную, управляемую событиями связь между участниками системы, а также способствует слабой связи между этими субъектами, поскольку подписчик никогда не должен иметь непосредственного знания об издателе.
Справочная реализация стандартной версии написана на ActionScript 3.
Этот вариант поддерживает модульное программирование, позволяя использовать независимые программные модули, каждый со своим собственным независимым PureMVC «Ядро». Ядро - это набор из четырех основных действующих лиц, используемых в стандартной структуре (модель, представление, контроллер и фасад). Эта версия платформы использует Multitons вместо Singletons. Вместо того, чтобы хранить один экземпляр класса, Multiton хранит карту экземпляров. На каждое ядро ссылается связанный многотонный ключ.
Версия платформы 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 | ColdFusion 8 | [7] | |
Dart | Google Dart | [ 8] | |
Go | 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 | Java Mobile, Standard и Enterprise Editions (ME, SE, EE), JavaFX, сервлеты, Апплеты и GWT | [14] | [15] |
JavaScript | Нейтральный браузер. Собственный порт JavaScript MultiCore работает со всеми другими фреймворками. (Предыдущие сторонние зависимые порты устарели). | [16] | |
Kotlin | Android | [17] | |
Objective-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] |
TypeScript | TypeScript | [29] | [30] |