Obviously, you will use the Page Controller pattern discussed in Chapter 3 to solve this
design issue. The OMS application will extensively use page controller implementations
that extend the SimpleFormController . However, the home page controller that will be
used for redirection on successful authentication will use a UrlFilenameViewController .
This is because this page controller does not define a complete workflow and is used only
to render a simple home page now. Figure 7-5 shows the page controller class diagram.
Figure 7-5. OMS class diagram for page controllers in iteration 1
The ServiceLookupController produces a list of matching services as per the search
inputs supplied by the user. Similarly, the SaveOrderController saves the order informa-
tion by invoking the business tier components.
By now you must have observed the similarity between the design directives and the
patterns presented earlier in this topic. I have not shown the consequences for using the
different solutions. This is deliberate. I am sure you can make out the consequences from
the Spring Java EE patterns that were applied for a particular design issue. A conse-
quences section with a benefit and concern analysis is a must when you deliver a design
directive to a development team or customer. Also, I prefer to add a UML package dia-
gram (besides class and sequence diagrams) in my design directives, because it helps
reveal the coupling in the application.
By now you should have a clear idea about the OMS application design. Table 7-1
points you to the appropriate Spring Java EE design patterns for the rest of the design
issues. You can try to elaborate on these design directives as well as add the “Conse-
quences” section to the previous examples.