Chapter 7. Applying Business Logic
With the actors of our Model and View tiers now defined, we are ready to stitch them together and get things done. That is certainly the speciality of the Controller tier. But what kind of things do we want to do here?
Two Shades of Logic
Domain Logic
All of that code in ValueObject, AbstractProxy, and their subclasses is
Domain Logic. It deals strictly with
representing and persisting the data structures of our domain
model.
The VOs encapsulate any logic necessary to represent data as typed
objects and properties for manipulation by the rest of the program (in
this case, marshaling data into and out of an XML structure). Often
there is no logic, only properties on the VOs, or XML parsing logic
might end up in your Proxys, if it is
relatively simple, or in some form of delegate or helper used by the
Proxys if there is a lot of
it.
The Proxys and VOs take care of
persisting and retrieving the data in a reliable way. We do not want to
rely on Commands in the application
to ensure the integrity of our data or be directly responsible for its
persistence.
Business Logic
By contrast, Business Logic has
to do with the aims, or business, of the application itself, fulfilling
its use cases. For example, opening a Story for editing by taking the
StoryVO and making the appropriate
calls on the SelectionContext to select the current Draft of the very last Scene in the Story, however its Scenes are grouped. This code works with the domain model data, but for the purpose ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access