9.1. Model–View–Controller

Intent

Allow an interactive application to be easily extended, ported and tested by dividing the responsibility for managing, displaying and manipulating data between three cooperating classes.

AKA

MVC

9.1.1. Problem

9.1.1.1. Context

You wish to create an interactive application with a flexible human–computer interface[] that targets as many Symbian OS devices as possible across more than one GUI variant.

[] Derived from the intent of Model–View–Controller defined in [Buschmann et al., 1996].

9.1.1.2. Summary
  • You wish to be able to easily port your application between the different GUI variants based on Symbian OS.

  • You want to be able to easily maintain and extend your application over time.

  • You want to be able to test as much of your application as possible independently of the GUI variant to reduce your testing costs.

9.1.1.3. Description

Symbian OS supports multiple GUI variants, which are supplied by UI vendors as a layer on top of Symbian OS. By supporting multiple GUI variants, Symbian OS enables device creators to differentiate products based on form factor, UI 'look and feel', and interaction style. For application developers, the most important GUI variants are S60 and UIQ. The third GUI variant, MOAP, is widely used on Symbian OS phones in Japan, but is not open to native third-party applications so we don't focus on it in this pattern.

Historically, S60 has been associated with classic smartphone designs based on small but high-resolution ...

Get Common Design Patterns for Symbian OS: The Foundations of Smartphone Software now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.