PureMVC

Puremvc
PureMVC-Icon.jpg
Originalautor (en) Clifford Hall
Entwickler (en) FutureScale, Inc. und die Puremvc -Community
Stabile Version
2.0.4 / 14. August 2008
Geschrieben in Aktionen, C ++, C#, Coldfusion, Pfeil, haxe, Java, JavaScript, Ziel c, Perl, Php, Python, Rubin, Schnell, Typoskript
Betriebssystem Plattformübergreifend
Typ Rahmen
Lizenz 3-Klausel BSD
Webseite Puremvc.org Edit this on Wikidata

Puremvc ist ein Rahmen für das Erstellen von Anwendungen, die auf dem etablierten Basis basieren Model View Controller (MVC) Designmuster. Die Freiheit, Open Source Das Framework wurde ursprünglich in der ActionScript 3 -Sprache für die Verwendung mit der Verwendung implementiert Adobe Flex, Blinken und LUFTund es war seitdem portiert an fast alle wichtigen Webentwicklungsplattformen.

Implementierungen

Standard Version

Die Modell-, Ansichts- und Controller -Anwendungsstufen werden durch drei dargestellt Singletons (Eine Klasse, von der nur eine Instanz erstellt werden kann).

Die MVC -Singletons pflegen benannt Caches von Stellvertreter, Mediatoren und Befehle, beziehungsweise. Das FassadeAuch ein Singleton bietet eine einzige Schnittstelle für die Kommunikation in der gesamten Anwendung. Diese vier Singletons werden als Kernakteure bezeichnet.

  • Datenobjekte, sei es lokal oder fern, werden von Proxies verwaltet.
  • Die Ansichtskomponenten, aus denen die Benutzeroberfläche besteht, werden von Mediatoren verwaltet.
  • Befehle können mit Proxies, Mediatoren und anderen Befehlen interagieren oder ausführen.

Alle Schauspieler entdecken und kommunizieren miteinander über die Fassade, anstatt direkt mit Modell, Ansicht und Controller zu arbeiten.

Puremvc führt auch a ein Veröffentlichen/abonnieren-Stil Beobachter Benachrichtigungsschema. Dies ermöglicht eine asynchrone, ereignisgesteuerte Kommunikation zwischen den Akteuren des Systems und fördert auch a lose Kopplung Zwischen diesen Akteuren muss der Abonnent nie direkte Kenntnisse des Verlags haben.

Die Implementierung der Standardversionsreferenz ist in ActionScript 3 geschrieben.

Multicore -Version

Diese Variation unterstützt die modulare Programmierung und ermöglicht die Verwendung unabhängiger Programmmodule jeweils mit ihrem eigenen unabhängigen Puremvc 'Core'. Ein Kern ist ein Satz der vier Hauptakteure, die im Standard -Framework verwendet werden (Modell, Ansicht, Controller und Fassade). Diese Version des Frameworks verwendet Multitonen anstelle von Singletons. Anstatt eine einzelne Instanz der Klasse zu speichern, speichert ein Multiton a Karte von Instanzen. Jeder Kern wird durch einen zugehörigen Multiton -Schlüssel verwiesen.

Die Multicore-Version des Frameworks wurde aufgrund des weit verbreiteten Bedarfs an modularer Unterstützung in einer Welt von immer ehrgeizigen, reichhaltigen Internetanwendungen entwickelt, die zur Laufzeit große Funktionen geladen und entladen müssen. Beispielsweise muss eine PDA -Anwendung möglicherweise dynamisch Module laden und entladen, um Aufgabenliste, Kalender, E -Mail, Kontakte und Dateien zu verwalten. Die "Multicore" -Version erleichtert die Einheiten -Tests.

Die Multicore -Versionsreferenzimplementierung ist in ActionScript 3 geschrieben.

Häfen

Es gibt mehrere aktive Puremvc Häfen- Implementationen für verschiedene Programmiersprachen, die jeweils von Puremvc -Community -Mitgliedern beigetragen und unterstützt haben. Jeder Port unterstützt wiederum eine oder mehrere Zielentwicklungsplattformen, die die wichtigsten Umgebungen für mobile, Browser-, Desktop- und Server -Umgebungen abdecken.

Sprache Ziele Standard Version Multicore -Version
Aktionen2 Flex 1.5, Flash 8, Flash Lite [1]
Aktionen3 Flex 2, Flex 3, Flex 4, Flash 9+, Luft (alle Versionen). Original Puremvc Referenzimplementierungen [2] [3]
C ++ Thread-safe. Kompilieren Sie mit: MSVC 8.0/9.0/10.0, MINGW 3.4.5, GNU G ++ 4.0, Embarcadero C ++ 6.21 (MFC, WTL, WXWIDGES, QT ...) [4]
C# .NET Core, Windows 10, Xamarin, Xbox, Kinect, HoloLens, Oberflächen -Neo [5] [6]
Coldfusion Coldfusion 8 [7]
Pfeil Google Dart [8]
gehen 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- und Enterprise -Editionen (ME, SE, EE), Javafx, Servlets, Applets und GWT [14] [15]
JavaScript Browser neutral. Native JavaScript Multicore Port arbeitet mit allen anderen Frameworks. (Frühere von Drittanbietern abhängige Ports sind veraltet). [16]
Kotlin Android [17]
Ziel c Apple iPhone und Mac [18]
Perl Perl 5 [19] [20]
Php Php 5 [21] [22]
Python Python 2.5 für WXPython, Google App Engine, PYJS [23] [24] [25]
Rubin Rubin [26]
Schnell Schnell [27] [28]
Typoskript Typoskript [29] [30]

Externe Links