PureMVC — програмний каркас для створення застосунків на основі усталеного шаблона проєктування модель-вид-контролер. Безплатний, з відкритим початковим кодом. Вперше був реалізований в ActionScript 3, надалі був портований для більшості платформ розробки програмного забезпечення та вебпрограмування.
Ілюстрація взаємодії частин фреймворку | |
Тип | програмний каркас |
---|---|
Розробник | Futurescale, Inc. |
Стабільний випуск | 1.6 (Sept 08, 2007) |
Операційна система | Багатоплатформна |
Мова програмування | ActionScript |
Доступні мови | ActionScript, , Perl, PHP, Python та інші |
Ліцензія | CC +Attribution |
Вебсайт | puremvc.org |
Реалізація
Стандартна версія
Модель, Вид та Контролер представлені трьома шаблонами Одинаками (класи, для яких може бути створений тільки один екземпляр).
MVC кешує:
- в Моделі — об'єкти Проксі (Proxies) для доступу до локальних або віддалених даних,
- в Види — об'єкти Медіатори (Mediators) для доступу до представлень.
В Контролері зберігаються класи Команд (Commands), екземпляри яких створюються перед початком виконанням кожної окремої команди і знищуються після завершення виконання команди. Команди можуть взаємодіяти з проксі, посередники, а також виконувати запуск інших команд.
Медіатор надає можливість створювати або використовувати наявні компоненти інтерфейсу користувача. Медіатор описує поведінку своєї частини інтерфейсу, таким чином досягається можливість не перенасичувати елементи компонентів інтерфейсу. Медіатор має змогу безпосередньо керувати компонентом, компонент такої можливості не має, зв'язок між компонентом та медіатором здійснюється через Спостерігач (Observer).
Взаємодію між структурними елементами забезпечує Фасад, також Singleton, який надає єдиний інтерфейс для зв'язку у всьому додатку. Фасад в PureMVC не має нічого спільного з однойменним шаблоном проєктування.
PureMVC також вводить механізм публікації/підписки для обміну повідомленнями (сповіщеннями) між елементами PureMVC. Це дозволяє організувати асинхронний, керований подіями зв'язок між елементами системи, а також сприяє отриманню між суб'єктами, оскільки абонент ніколи не повинен спиратись на безпосереднє знання про відправника повідомлення.
MultiCore версії
Цей варіант підтримує модульне програмування, що дозволяє використовувати незалежні програмні модулі, реалізовані в PureMVC та забезпечити взаємодію між ними. Ця версія використовує рамки замість Одинаків.
MultiCore версія була розроблена у зв'язку з необхідністю підтримки популярної технології модульного програмування, яке використовується в амбітних багатофункціональних інтернет-проєктах.
Порти
Мова | Цілі | Стандартна версія | MultiCore версія |
---|---|---|---|
ActionScript 2 | Flex 1.5, Flex 2, Flash 8, FlashLite | [1] [ 30 грудня 2013 у Wayback Machine.] | |
ActionScript 3 | Flex 3, Flex 4, Flash 9+, AIR (all versions). Original PureMVC reference implementations | [2] [ 29 грудня 2013 у Wayback Machine.] | [3] [ 6 червня 2014 у Wayback Machine.] |
Нитево-безпечний. Компілюється: MSVC 8.0/9.0/10.0, MinGW 3.4.5, GNU G++ 4.0, Embarcadero C++ 6.21 (MFC, , wxWidgets, Qt...) | [4] [ 29 грудня 2013 у Wayback Machine.] | ||
C# | .NET 1.0/2.0 Silverlight, Windows Mobile та Pocket PC. | [5] [ 29 грудня 2013 у Wayback Machine.] | [6] [ 6 червня 2014 у Wayback Machine.] |
ColdFusion | ColdFusion 8 | [7] [ 29 грудня 2013 у Wayback Machine.] | |
Dart | Google Dart | [8] [ 29 грудня 2013 у Wayback Machine.] | |
Haxe | JavaScript, Flash 8, Flash 9 та . | [9] [ 29 грудня 2013 у Wayback Machine.] | [10] [ 6 червня 2014 у Wayback Machine.] |
Java | Java Mobile, Standard та (ME, SE, EE), JavaFX, сервлети, аплети, та GWT | [11] [ 29 грудня 2013 у Wayback Machine.] | [12] [ 6 червня 2014 у Wayback Machine.] |
JavaScript | Нейтральний до браузера. Нативний JavaScript MultiCore порт робить з усіма іншими фреймворками. (Попередні залежні портування від третіх постачальників засуджуються). | [13] [ 29 грудня 2013 у Wayback Machine.] | |
Objective-C | Apple iPhone та Mac | [14] [ 29 грудня 2013 у Wayback Machine.] | |
Perl | Perl 5 | [15] [ 29 грудня 2013 у Wayback Machine.] | [16] [ 6 червня 2014 у Wayback Machine.] |
PHP | PHP 5 | [17] [ 29 грудня 2013 у Wayback Machine.] | [18] [ 6 червня 2014 у Wayback Machine.] |
Python | Python 2.5 for wxPython, Google App Engine, Pyjamas | [20] [ 29 грудня 2013 у Wayback Machine.] | [21] [ 6 червня 2014 у Wayback Machine.] |
Ruby | Ruby | [22] [ 29 грудня 2013 у Wayback Machine.] | |
TypeScript | TypeScript | [23] [ 28 жовтня 2013 у Wayback Machine.] | [24] [ 28 жовтня 2013 у Wayback Machine.] |
Дивись також
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
PureMVC programnij karkas dlya stvorennya zastosunkiv na osnovi ustalenogo shablona proyektuvannya model vid kontroler Bezplatnij z vidkritim pochatkovim kodom Vpershe buv realizovanij v ActionScript 3 nadali buv portovanij dlya bilshosti platform rozrobki programnogo zabezpechennya ta vebprogramuvannya PureMVCIlyustraciya vzayemodiyi chastin frejmvorkuTipprogramnij karkasRozrobnikFuturescale Inc Stabilnij vipusk1 6 Sept 08 2007 Operacijna sistemaBagatoplatformnaMova programuvannyaActionScriptDostupni moviActionScript C Perl PHP Python ta inshiLicenziyaCC AttributionVebsajtpuremvc orgRealizaciyaStandartna versiya Model Vid ta Kontroler predstavleni troma shablonami Odinakami klasi dlya yakih mozhe buti stvorenij tilki odin ekzemplyar MVC keshuye v Modeli ob yekti Proksi Proxies dlya dostupu do lokalnih abo viddalenih danih v Vidi ob yekti Mediatori Mediators dlya dostupu do predstavlen V Kontroleri zberigayutsya klasi Komand Commands ekzemplyari yakih stvoryuyutsya pered pochatkom vikonannyam kozhnoyi okremoyi komandi i znishuyutsya pislya zavershennya vikonannya komandi Komandi mozhut vzayemodiyati z proksi poseredniki a takozh vikonuvati zapusk inshih komand Mediator nadaye mozhlivist stvoryuvati abo vikoristovuvati nayavni komponenti interfejsu koristuvacha Mediator opisuye povedinku svoyeyi chastini interfejsu takim chinom dosyagayetsya mozhlivist ne perenasichuvati elementi komponentiv interfejsu Mediator maye zmogu bezposeredno keruvati komponentom komponent takoyi mozhlivosti ne maye zv yazok mizh komponentom ta mediatorom zdijsnyuyetsya cherez Sposterigach Observer Vzayemodiyu mizh strukturnimi elementami zabezpechuye Fasad takozh Singleton yakij nadaye yedinij interfejs dlya zv yazku u vsomu dodatku Fasad v PureMVC ne maye nichogo spilnogo z odnojmennim shablonom proyektuvannya PureMVC takozh vvodit mehanizm publikaciyi pidpiski dlya obminu povidomlennyami spovishennyami mizh elementami PureMVC Ce dozvolyaye organizuvati asinhronnij kerovanij podiyami zv yazok mizh elementami sistemi a takozh spriyaye otrimannyu mizh sub yektami oskilki abonent nikoli ne povinen spiratis na bezposerednye znannya pro vidpravnika povidomlennya MultiCore versiyi Cej variant pidtrimuye modulne programuvannya sho dozvolyaye vikoristovuvati nezalezhni programni moduli realizovani v PureMVC ta zabezpechiti vzayemodiyu mizh nimi Cya versiya vikoristovuye ramki zamist Odinakiv MultiCore versiya bula rozroblena u zv yazku z neobhidnistyu pidtrimki populyarnoyi tehnologiyi modulnogo programuvannya yake vikoristovuyetsya v ambitnih bagatofunkcionalnih internet proyektah Porti Mova Cili Standartna versiya MultiCore versiyaActionScript 2 Flex 1 5 Flex 2 Flash 8 FlashLite 1 30 grudnya 2013 u Wayback Machine ActionScript 3 Flex 3 Flex 4 Flash 9 AIR all versions Original PureMVC reference implementations 2 29 grudnya 2013 u Wayback Machine 3 6 chervnya 2014 u Wayback Machine C Nitevo bezpechnij Kompilyuyetsya MSVC 8 0 9 0 10 0 MinGW 3 4 5 GNU G 4 0 Embarcadero C 6 21 MFC wxWidgets Qt 4 29 grudnya 2013 u Wayback Machine C NET 1 0 2 0 Silverlight Windows Mobile ta Pocket PC 5 29 grudnya 2013 u Wayback Machine 6 6 chervnya 2014 u Wayback Machine ColdFusion ColdFusion 8 7 29 grudnya 2013 u Wayback Machine Dart Google Dart 8 29 grudnya 2013 u Wayback Machine Haxe JavaScript Flash 8 Flash 9 ta 9 29 grudnya 2013 u Wayback Machine 10 6 chervnya 2014 u Wayback Machine Java Java Mobile Standard ta ME SE EE JavaFX servleti apleti ta GWT 11 29 grudnya 2013 u Wayback Machine 12 6 chervnya 2014 u Wayback Machine JavaScript Nejtralnij do brauzera Nativnij JavaScript MultiCore port robit z usima inshimi frejmvorkami Poperedni zalezhni portuvannya vid tretih postachalnikiv zasudzhuyutsya 13 29 grudnya 2013 u Wayback Machine Objective C Apple iPhone ta Mac 14 29 grudnya 2013 u Wayback Machine Perl Perl 5 15 29 grudnya 2013 u Wayback Machine 16 6 chervnya 2014 u Wayback Machine PHP PHP 5 17 29 grudnya 2013 u Wayback Machine 18 6 chervnya 2014 u Wayback Machine Python Python 2 5 for wxPython Google App Engine Pyjamas 20 29 grudnya 2013 u Wayback Machine 21 6 chervnya 2014 u Wayback Machine Ruby Ruby 22 29 grudnya 2013 u Wayback Machine TypeScript TypeScript 23 28 zhovtnya 2013 u Wayback Machine 24 28 zhovtnya 2013 u Wayback Machine Divis takozhModel vid kontroler