Presentation Model Pattern

This is a base pattern for other pattern and is of academic interest only 
  1. Motivation
    1. Decouples UI and UI state information.
  2. Summary
    1. Separate the responsibilities for the visual display and the user interface state and behavior into different classes named, respectively, the view and the presentation model.
    2. The view class manages the controls on the user interface and the presentation model class acts as a façade on the model with UI-specific state and behavior, by encapsulating the access to the model and providing a public interface that is easy to consume from the view (for example, using data binding).
  3. When to Use
    1. Particularly useful in  smart client applications
  4. Related Patterns
    1. Separated Presentation. This pattern is a specialization of the Separated Presentation pattern. Separated Presentation patterns are a category of patterns that focus on keeping the logic for the presentation separate from the visual representation.
    2. Supervising Controller. This pattern solves the same problems that the Presentation Model pattern solves; the main difference is that the Supervising Controller pattern separates responsibilities in different classes named, the view and the presenter, and the view interacts with the model for simple data binding.
    3. ModelView-ViewModel : A variant of the Presentation Model pattern named Model-View-ViewModel is commonly used in Windows Presentation Foundation applications.
  5. References
    1. http://www.martinfowler.com/eaaDev/PresentationModel.html
    2. http://msdn.microsoft.com/en-us/library/ff921080.aspx