PureMVC
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 |
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] |