Example: Pattern 02: Factor Atomic Reusable Logic into Lower Reuse Layers
Refactor all business-context-independent logic into reusable components.
Relationships
Main Description

In this example, we see the following types of Participants illustrated:

  • An instance of Manufacturer assembles the other instances into a unit that can be deployed and executed at run-time;
  • An instance of OrderProcessor realizes the Purchasing service.  Purchasing is a composite service, because its operations are realized using functionality provided by InvoicingService, Scheduling, and Shipping Service;
  • Instances of the Invoicer, Productions, and Shipper Participants also appear.  In this case, they realize InvoicingService, Scheduling, and ShippingService without recourse to invoking other exposed services, thus those services are atomic services

Among the four realizing Participants, we ensure that all logic which is business-context-independent is pushed down into the implementations of the three atomic services.

Below the atomic services, we would also have a further layer in our architecture, that being Operational Systems.  Invoicer, Productions, and Shipper might realize their exposed services by using components from the Operational Systems layer. 



More Information