PureMVC ist bekanntlich ein Framework, um Anwendungen nach dem Model-View-Controller-Prinzip zu erstellen.
Das Open Source Framework funktioniert mit Flash, Flex und AIR. Darüber hinaus wurde es auch für zahreiche andere Programmiersprachen (z.B. C#, Java) portiert.
Based upon proven design patterns, this free, open source framework which was originally implemented in the ActionScript 3 language for use with Adobe Flex, Flash and AIR, is now being ported to all major development platforms.
Beispiel
Das Beispiel ist einfach gehalten und zeigt eine große Zahl, die die aktuelle Seite symbolisiert (also z.B. #1 für Seite 1). Insgesamt gibt es vier Seiten.
Über Buttons kann man eine Seite vor- und zurückblättern. Mit einem weitere Button kann man direkt auf Seite 3 springen.
[kml_flashembed publishmethod=“dynamic“ fversion=“10.0.0″ movie=“/wp-content/uploads/2010/01/puremvc.swf“ width=“500″ height=“375″ targetclass=“flashmovie“]
[/kml_flashembed]
Mediator, Proxy, Command
Wie beim Robotlegs Framework, das in seiner MVCS-Implementierung dem PureMVC-Framework nachempfunden ist, gibt es für die View-Komponenten die Mediatoren.
Das Model wird in PureMVC Proxy genannt. Der Controller besteht aus den Commands, von denen es verschiedene Typen gibt.
Quellcode
Den kompletten Quellcode gibt es bei Github. Verbesserungsvorschläge und Korrekturen sind jederzeit willkommen :-)
Link: github.com/florianplag/PureMVC-Flex-Demo
Link: puremvc.org/
Link: Best Practices Document (deutsch)
[ad]
Hi Flo,
schönes, kleines Beispiel.
Allerdings würde ich nicht für jeden Button einen Mediator anlegen. Bei mir verwaltet ein Mediator immer ein gewisses Set an Komponenten (Buttons, Displays, etc.). Sonst würde man IMHO den Code in größeren Projekten viel zu stark aufblähen. Ein Mediator verwaltet im Endeffekt eine View. z.B. ein Meditor für die Navigation, einer für einen Screen, einer für einen Layer usw.
viele Grüße,
Daniel
Hi Daniel,
danke für den Hinweis! Das stimmt, das wäre wahrscheinlich ein bisschen zu viel des Guten…
Andere Frage: Hast du zufällig schon einmal mit den Pipes in PureMVC gearbeitet?
Hi Flo,
ja…habe es mal probiert, fand es aber – ehrlich gesagt – etwas zu umständlich. Alternativ kann man ja auch die verschiedenen Cores über Interfaces kommunizieren lassen. Hatte bisher aber auch selten mehr als 2 Cores in meine Projekten.