> Changing the value of inputs doesn't change the state of the object in the world until you press the save button
This is key. If the UI is linked, checkbox by checkbox, field by field, to the model, then we've created the brittle situation where the user is, in effect, directly manipulating the "business objects". Such a scheme ends up imposing (at least) implicit design constraints when modeling the app (steering the developer away from the best or most logical decisions when they would make the rigidly linked view layer unwieldy), and similarly shackling the UX design to the model setup. Which makes for a worse app. These should be related but separate concerns; a smart user experience will require some logic, marshalling, and abstraction.
Re:Announcing Amber.js
by jasonwatkinspdx on Thursday December 08, 2011 @03:57PM
(#3331081)
The rails world has a name for this object: Coordinator, which is typically a decorator on the model, though personally I feel it should be a facade.
One could think of it as a Presenter but with data flowing the other way through the abstraction.
In Batman we really want to make this other object a reality and have been scheming about "draft" versions of models for quite a while, but still haven't quite nailed down how to do it when things like associated objects enter into the mix.