Martin Fowler has
started working on an update to his acclaimed book Patterns of Enterprise Application Architecture over the last few months. One of the major areas of focus thus far has been patterns relating to
GUI architectures. This is an area of software development that has been lacking architectural documentation in comparison to patterns for use in enterprise web development. Fowler briefly covers the history of patterns in GUI development. Then he discusses the problems with using a pure MVC pattern and provides several modified patterns that work well for today's modern GUI development projects. Patterns in progress include Supervising Controller, Passive View and Presentation Model.
Supervising Controller is defined as:
Factor the UI into a view and controller where the view handles simple mapping to the underlying model and the the controller handles input response and complex view logic.
Presentation Model as:
Represent the state and behavior of the presentation independently of the GUI controls used in the interface
Passive View as:
A screen and components with all application specific behavior extracted into a controller so that the widgets have their state controlled entirely by controller.
All three of these patterns strive to prevent
the complexity of an Autonomous View, and to improve testability.