Padrões de projeto Java EE Catalogo proposto pela Sun Microsystems é voltado para a utilização com tecnologias Java EE. De forma similar ao que ocorre com os padrões GoF, os padrões JEE podem ser divididos em camadas, cada uma com suas características especificas. Essas camadas são dividas em Camada de Apresentação, Camada de Negócio e Camada de integração. Abaixo vemos os padrões pertencentes ao catálogo e como se dá a comunicação entre eles. http://java.sun.com/blueprints/corej2eepatterns/Patterns/ Camada de Apresentação Intercepting Filter - Utiliza um Intercepting Filter como um filtro conectável para realizar o pré e pós-processamento das requisições. 1 Front Controller - Oferece um controlador centralizado para gerenciar o processamento das requisições Context Object – utiliza Use um objeto de contexto para encapsular o estado de uma maneira independente de protocolo para compartilhamento pela aplicação. Application Controller - Centraliza e modulariza o gerenciamento das visões e ações. 2 View Helper - Encapsula a formatação do código e a lógica de processamento da visão. Composite View - Cria uma View composta de componentes menores atômicos podendo gerar o layout da página de forma independente do conteúdo. Service To Worker - As principais tarefas são executadas antes de despachar as requisições centralizando o controle e o tratamento de requisições a fim de recuperar um modelo de apresentação antes de mudar o controle para a View. 3 Dispatcher View – Assim como o Service To Worker combina o Front Controller, Dispatcher e Helpers. Use Dispatcher View como o ponto de acesso inicial para as solicitações das visões. O processamento da lógica de negócios é gerido pelas visões caso seja necessário. Camada de Negócios Business Delegate - encapsula o acesso aos serviços fornecidos pela camada de negócio escondendo os detalhes da implementação dos serviços fornecidos dessa forma desacoplando camadas de apresentação e de negócios (serviços). 4 Service Locator - implementa e encapsula os serviços e pesquisa a componentes. Session Façade - encapsular componentes da camada de negócios e centraliza controle a esses componentes uma vez que os clientes tem acesso a uma fachada em vez de acessar diretamente componentes de negócios. Application Service - Centraliza e agrega comportamento para oferecer uma camada de serviços uniforme. 5 Business Object - Separa os dados e a lógica de negócio usando modelo de objetos. Composite Entity - Implementa objetos de negocio persistentes combinando bens de entidade locais (Entity Beans) e POJOs. Transfer Object - transporta múltiplos elementos de dados reduzindo o tráfego e facilitando a transferência de dados entre camadas 6 Transfer Object Assembler - Construir um modelo de aplicativo como um Transfer Object composto. O Transfer Object Assembler agrega múltiplos Transfer Objects a partir de componentes de vários negócios e serviços, e retorna para o cliente. Value List Handler - Lida com execução de consultas, caches de resultados além de permitir que os clientes percorram e selecionem itens a partir dos resultados obtidos. 7 Camada de Integração Data Access Object – Abstrai as fontes de dados e oferece acesso transparente aos dados. Service Activator - Facilita o processamento assíncrono recebendo solicitações e chamar um ou mais serviços de negócios (componentes EJB) 8 Domain Store – Fornece mecanismos transparentes de persistência para objetos de negócio. Web Service Broker - Expõe um ou mais serviços usando XML e protocolos Web. 9 10