Controller Layer

The controller layer is used to restrict access to the model layer. It is usually used between the view and the model layer to validate changes. It can also be used behind a remote API to ensure that changes are validated consistently. Controllers used the validation model to enforce validation rules.

Controlled Model

To be useful, a controller layer has to be linked to a controlled model. The control layer will then create a controller structure that matches the structure of the model. Every property collection in the model will have a corresponding property collection controller. Each property collection controller will contain a property controller that matches each of the values in the controlled collection.

Property Collection Controller

Property Collection Controllers are used to control a single property collection at a time. They are control access to the delete and add operations on a collection. They also contain a list of property controllers that match each of the properties in the controlled collection.

Property Controller

Property Controllers are used to restrict access to one property at a time. They indicate if the property can be changed or even removed. They apply the logic contained in the property validation model to validate property changes.