|
You want to centralize business logic across several business-tier
components and services.
- You want to minimize business logic in service
facades.
- You have business logic acting on multiple Business Objects or services.
- You want to provide a coarser-grained service API over existing business-tier
components and services.
- You want to encapsulate use case-specific logic outside of individual
Business Objects.
Use an Application Service to centralize and aggregate behavior
to provide a uniform service layer.
Class Diagram
Sequence Diagram
- Application Service Command Strategy
- GoF Strategy for Application Service Strategy
- Application Service Layer Strategy
- Centralizes reusable business and workflow logic
- Improves reusability of business logic
- Avoids duplication of code
- Simplifies facade implementations
- Introduces additional layer in the business tier
- Session Façade
Application Services provide the background infrastructure for Session
Façades, which become simpler to implement and contain less code
because they can delegate the business processing to Application Services.
- Business Object
In applications that use Business Objects, Application Services encapsulate
cross-Business Objects logic and interact with several Business Objects.
- Data Access Object
In some applications, an Application Service can use a Data Access Object
directly to access data in a data store.
- Service Layer [PEAA]
Application Service is similar to Service Layer pattern in that both
aim to promote a service layer in your application. Service Layer explains
how a set of services can be used to create a boundary layer for your
application.
- Transaction Script [PEAA]
When an Application Service is used without Business Objects (374),
it becomes a service object where you can implement your procedural
logic. Transaction Script describes the use of procedural approach to
implementing business logic in your application.
|