OReilly PureMVC Book

PureMVC Book



PureMVC on the Web

PureMVC Blog-o-Sphere
PureMVC on Google+
PureMVC on Facebook
PureMVC on Twitter
PureMVC on LinkedIn
PureMVC on Delicious
Saturday, 19 April 2008
ImagePureMVC is a lightweight framework for creating applications based upon the classic Model, View and Controller concept.
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.
Two versions of the framework are supported with reference implementations; Standard and MultiCore
In short, the Standard Version provides a simple methodology for separating your coding interests according to the MVC concept. Beyond that, the MultiCore Version allows multiple PureMVC applications to run within the same virtual machine; modular programming. 
Though the two versions are very similar they are maintained separately, because for applications that don't need modular functionality (or on development platforms that lack support for it), the Standard Version is adequate.

Standard Version

The Model, View and Controller application tiers are represented by three Singletons (a class where only one instance may be created).


The MVC Singletons maintain named caches of Proxies, Mediators and Commands, respectively. The Faade, also a Singleton, provides a single interface for communications throughout the application. These four Singletons are referred to as the Core Actors.


  • Data objects, be they local or remote, are managed by Proxies.
  • The View Components that make up the User Interface are managed by Mediators.
  • Commands may interact with Proxies, Mediators, as well as trigger or execute other Commands.


All actors discover and communicate with each other via the Faade, rather than work directly with Model, View and Controller.


PureMVC also introduces a Publish/subscribe-style Observer notification scheme. This allows asynchronous, event-driven communications between the actors of the system, and also promotes a loose coupling between those actors, since the subscriber never needs to have direct knowledge of the publisher.


The Standard Version Reference Implementation is written in ActionScript 3.

MultiCore Version

This variation supports modular programming, allowing the use of independent program modules each with their own independent PureMVC 'Core'. A Core is a set of the four main actors used in the Standard framework (Model, View, Controller and Facade) This version of the framework uses Multitons instead of Singletons. Rather than storing a single instance of the class, a Multiton stores a map of instances. Each Core is referenced by an associated Multiton Key.


The MultiCore Version of the framework was developed due to the widespread need for modular support in a world of ever-more ambitious Rich Internet Applications which must load and unload large pieces of functionality at runtime. For instance a PDA application might need to dynamically load and unload modules for managing task list, calendar, email, contacts, and files.


The MultiCore Version Reference Implementation is written in ActionScript 3.


Furl it!
Copyright (c) 2006-2012 Futurescale, Inc.