Estrutura Básica das Camadas JAVA
Conteúdo |
[editar] Camada de modelo
[editar] Pojo (VO (value object), Classe Persistente)
Os pojos (De POJO – Plain Old Java Object) são classes designadas para representar dados contidos no banco de dados, geralmente com o auxílio do framework Hibernate. Classes deste tipo contém apenas os campos do objeto e os getters e setters requeridos para seu acesso. Não é permitido nenhum tipo de código nessas classes. Objetos pertencentes a classes persistentes podem circular livremente entre as camadas. Obs: Num escopo mais amplo, POJO é o nome dado para qualquer classe Java simples, que não extenda ou implemente nenhuma classe ou interface complexa de um dado framework. No sistema JResulth, no entanto, a nomenclatura “Pojo” é usada específica e exclusivamente para designar classes persistentes.
[editar] DAO (Data Access Object, Objeto de Acesso a Dados)
Responsável por gerenciar o acesso ao banco de dados, realizar leitura, gravação, consulta e exclusão dos dados para uma determinada classe persistente. Na arquitetura do sistema JResulth, cada DAO somente pode ser acessado por um único BO. Caso algum outro BO ou serviço necessite realizar consultas ou outras operações relativas a uma classe persistente gerenciada por um DAO que não lhe pertença, a operação deve ser intermediada pelo BO responsável pela classe.
[editar] BO (Business Object, Objeto de Negócios)
Classe responsável por gerenciar as regras de negócio do sistema. Para cada classe persistente “forte” do sistema, haverá um objeto de negócios correspondente. Cada BO pode se comunicar com um único DAO. É permitido, no entanto, se comunicar com outros BO’s ou serviços.
[editar] Fachada
Camada intermediária entre a camada de negócios e a camada de visão. Os objetos da camada de visão não podem, em hipótese alguma, acessar diretamente os BO’s, e muito menos os DAO’s. Qualquer comunicação entre a camada de visão e a de negócios deve ser intermediada por uma fachada, a qual deve conter uma quantidade mínima de código, apenas delegando tarefas aos objetos responsáveis. O controle de transação também está situado na fachada.
[editar] Camada de visão
[editar] Backing Bean JSF
Contém o código relacionado à interface com o usuário, sendo responsável por tratar as requisições do JSF.
[editar] Helper
Classe destinada a auxiliar os backing beans na montagem dos dados da tela. Podem ser diretamente conectados ao backing bean via agregação, como é o caso do FormHelper, ou atuar isoladamente, apenas fornecendo dados necessários à montagem da tela como é o caso do SelectItemHelper
[editar] Bean DWR
Classes responsáveis pelo tratamento de requisições AJAX com o auxílio do framework DWR. São usados para possibilitar, por exemplo, validação e preenchimento de campos sem a necessidade de um Post. Há também, por exemplo, beans DWR destinados a lidar com tabelas mestre-detalhe ou mesmo pesquisar rápidas.
[editar] Templates JSF
Templates em formato xhtml, cuja finalidade é definir o layout da tela. Possuem suporte total a herança e composição, possibilitando a derivação de novos templates a partir de templates pré-existentes, ou a inclusão de um template dentro de outro template. Geralmente, quando se monta uma tela, herda-se um template base, apenas adicionando-se informações de layout que forem específicas.
[editar] Outros
[editar] Serviços
Denominação genérica para módulos do sistema que não se enquadram nas categorias citadas. Podem, por exemplo, atuar em múltiplas camadas, como é o caso do AcessoService (Serviço de controle de acesso do usuário); ou podem, também, ser simplesmente uma subdivisão de um BO, separada para maior facilidade de manutenção, podendo-se citar, por exemplo, os múltiplos serviços de faturamento de pedido.