Java EE 8 Design Patterns and Best Practices
上QQ阅读APP看书,第一时间看更新

Summary

In this chapter, we explored the fact that the main objective of the Business Delegate is to hide the details of service implementations from the presentation tier. We have also seen that, in some situations, its use has been replaced by CDI technology (this technology is responsible for injecting components into a typesafe way application, such as injecting an EJB component), but we believe that this is not enough. The Business Delegate is still widely used in the treatment of more technical exceptions—for example, when it has remote EJB calls. In addition, the delegate protects the presentation tier from possible changes in the service layer, and conversely, when there are types of clients other than a web browser, using a delegate makes it easier for these new clients to access services.

Session Fa?ade centralizes business logic without exposing complex interactions that involve business objects to the client side. In addition, Session Fa?ade encapsulates business-tier components and exposes coarse-grained services to both local and remote clients. Consequently, the clients access a Session Fa?ade instead of directly accessing the business components. Some services, such as transaction-control or security-management, are addressed using Session Fa?ade implementations, such as EJBs.

The business-object pattern must be used whenever an application presents a high level of complexity. This may include when the representation of real-world objects cannot be translated merely as a data-model object, and there is, therefore, a need for reusability and uniformity in business solutions. Aside from reusability, the immediate benefit of this includes efficient code maintenance and a rich cohesion between layers caused by the separation of responsibilities. This is because the business objects separate business logic and persistence from the rest of the application.