9.1 The Model-View-Controller Pattern

The Model-View-Controller (MVC) is one of the most widely known design patterns in current use. It is based on the separation of responsibilities between the core application logic (the model), the presentation layer (the view) and user interaction handling (the controller). The Reaction framework is intended for use when implementing the model portion of the MVC triumvirate. Dealing with presentation and control is left to an appropriate user interface framework.

Use of the MVC pattern is particularly powerful when combined with OSGi support, since the OSGi framework allows the Reaction based model to be implemented as an independent OSGi component. GUI-specific viewer and controller components can then be attached at runtime using the OSGi service model. This means that the same application model component can be deployed across multiple platforms with different UI frameworks, such as Swing, JavaFX, SWT, Android or a GWT server.