PureMVC

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
PureMVC
PureMVC-Icon.jpgІлюстрація взаємодії частин фреймворку
Розробник(и) Futurescale, Inc.
Стабільний випуск 1.6 (Sept 08, 2007)
Операційна система Багатоплатформена
Доступні мови ActionScript, C++, Perl, PHP, Python та інші
Тип програмний каркас
Ліцензія CC +Attribution
Сайт puremvc.org

PureMVC - архітектурний шаблон, є основою для створення застосунків, заснованих на усталених шаблонах проектування модель-вид-контролер. Безплатний, з відкритим сирцевим кодом. Вперше був реалізований в ActionScript 3, в подальшому був портований для більшості платформ розробки програмного забезпечення та веб-програмування.

Реалізація[ред.ред. код]

Стандартна версія[ред.ред. код]

Модель, Вид та Контролер представлені трьома шаблонами Одинаками (класи, для яких може бути створений тільки один екземпляр).

MVC кешує:

  • в Моделі - об'єкти Проксі (Proxies) для доступу до локальних або віддалених даних,
  • в Виді - об'єкти Медіатори (Mediators) для доступу до представлень.

В Контролері зберігаються класи Команд (Commands), екземпляри яких створюються перед початком виконанням команди і знищуються після завершення виконання команди. Команди можуть взаємодіяти з проксі, посередники, а також виконувати запуск інших команд.

Медіатор надає можливість створювати або використовувати існуючі компоненти інтерфейсу користувача. Медіатор описує поведінку своєї частини інтерфейсу, таким чином досягається можливість не перенасичувати елемент компоненту. Медіатор має змогу безпосередньо управляти компонентом, компонент такої можливості не має, зв'язок між компонентом та медіатором здійснюється через Спостерігач (Observer).

Взаємодію між структурними елементами забезпечує Фасад, також Singleton, який надає єдиний інтерфейс для зв'язку у всьому додатку. Фасад в PureMVC не має нічого спільного з однойменним шаблоном проектування.

PureMVC також вводить публікації/підписки для обміну повідомленнями (сповіщеннями) між елементами PureMVC. Це дозволяє організувати асинхронний, керований подіями зв'язок між учасниками системи, а також сприяє отриманню слабкого зв'язку між суб'єктами, оскільки абонент ніколи не повинен мати безпосереднього знання про відправника повідомлення.

MultiCore версії[ред.ред. код]

Цей варіант підтримує модульне програмування, що дозволяє використовувати незалежні програмні модулі, реалізовані в PureMVC та забезпечити взаємодію між ними. Ця версія використовує рамки Пул Одинаків (Multitons) замість Одинаків.

MultiCore версія була розроблена у зв'язку з необхідністю підтримки популярної технології модульного програмування, яке використовується в амбітних багатофункціональних інтернет-проектах.

Порти[ред.ред. код]

Мова Цілі Стандартна версія MultiCore версія
ActionScript 2 Flex 1.5, Flex 2, Flash 8, FlashLite [1]
ActionScript 3 Flex 3, Flex 4, Flash 9+, AIR (all versions). Original PureMVC reference implementations [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 1.0/2.0 Silverlight, Windows Mobile та Pocket PC. [5] [6]
ColdFusion ColdFusion 8 [7]
Dart Google Dart [8]
haXe JavaScript, Flash 8, Flash 9 та Neko VM. [9] [10]
Java Java Mobile, Standard та Enterprise Editions (ME, SE, EE), JavaFX, сервлети, аплети, та GWT [11] [12]
JavaScript Нейтральний до браузера. Нативний JavaScript MultiCore порт робить з усіма іншими фреймворками. (Попередні залежні портування від третіх постачальників засуджуються). [13]
Objective-C Apple iPhone та Mac [14]
Perl Perl 5 [15] [16]
PHP PHP 5 [17] [18]
Python Python 2.5 for wxPython, Google App Engine, Pyjamas [19] [20] [21]
Ruby Ruby [22]
TypeScript TypeScript [23] [24]

Дивись також[ред.ред. код]