PureMVC is a framework for creating applications based upon the well-established
model–view–controller
Model–view–controller (MVC) is a software architectural pattern commonly used for developing user interfaces that divide the related program logic into three interconnected elements. This is done to separate internal representations of infor ...
(MVC)
design pattern
A design pattern is the re-usable form of a solution to a design problem. The idea was introduced by the architect Christopher Alexander and has been adapted for various other disciplines, particularly software engineering. The " Gang of Four" b ...
. The free,
open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
framework was originally implemented in the ActionScript 3 language for use with
Adobe Flex,
Flash
Flash, flashes, or FLASH may refer to:
Arts, entertainment, and media
Fictional aliases
* Flash (DC Comics character), several DC Comics superheroes with super speed:
** Flash (Barry Allen)
** Flash (Jay Garrick)
** Wally West, the first Kid F ...
and
AIR, and it has since been
ported to nearly all the major web development platforms.
Implementations
Standard version
The Model, View and Controller application tiers are represented by three
Singletons (a class of which only one instance may be created).
The MVC Singletons maintain named
caches of
Proxies,
Mediators and
Commands
Command may refer to:
Computing
* Command (computing), a statement in a computer language
* COMMAND.COM, the default operating system shell and command-line interpreter for DOS
* Command key, a modifier key on Apple Macintosh computer keyboards
* ...
, respectively. The
Facade, 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 Facade, rather than work directly with Model, View and Controller.
PureMVC also introduces a