This chapter describes the architecture of a photo processing workflow system. The typical scenario of a customer's order is as followed: The photographer takes pictures using a camera, loads them to a studio workstation, selects the good ones and enhanced them. After the enhancements the order is burned into a DVD, which is sent to the printing facility for further processing and printing. The printed pictures are sent back to the studio for customer pickup.
During the architecture they considered many aspects that I can now considered common sense after reading a few chapters in this book. For example, they divided the system into components and defined clear interfaces between them, kept module dependencies minimal, and built a very scalable and flexible system.
I specially liked the UI model separation from the domain model. Typically when the IU is closely tight to the domain model, it is difficult to change the domain and do unit testing. The author addressed this problem by separating both models using the facade design patterns to simplify their communication. The façade defined a higher level interface that made the domain model easier to use by the IU model. The IU only needs to ask the façade for service that it would otherwise need to traverse the graph of domain objects to figure out. This was a great use of a design pattern.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment