Controller Diagram

What Control (a part of) a model through a simple separate model.

When The essence of parametric modeling is the parameter---a variable that influences other parts of the design. Understanding how parameters affect a design is a crucial part of the modeling process. Use this pattern when you want to interact with your model in a clear and simple way, OR you want to convey to others how you intend a model to be changed. Remember, in the future you may well be such another person if you have forgotten the model structure!

Why Isolating manipulations to a simple place away from the complex detail of a model means that you can change the model more easily. Using a logic for control that is different from the way the model is defined means that you can use the most appropriate interaction metaphor. Changing a collection of objects through a single interface simplifies the interaction task.

As models grow, so does the need for a carefully considered set of controllers. In particularly complex models, you may well design and implement a separate control panel that collects all of the controllers into a single place in the interface.

How The key concept in a Controller is separation. You build a separate model whose outputs link to the inputs of your main model. The separate model is the Controller. It should express, simply and clearly, the way you intend to change the model.

As one property changes in your model, one or more parts change; you can connect these changing properties through a Controller. Then, you can simply change the Controller and see the result in your model. Controllers are thus independent---they have minimal connection to the model they control and are easily connected and disconnected as needed. This separation is the hallmark of a Controller: every well-designed Controller will have a symbolic model that shows only one or a scant few links between it and the model it controls.