Java Básico Aplicações em camadas Marco Antonio, Arquiteto de Software - TJDF Objetivos Mostrar o conceito de 'camada' Discutir as 3 principais camadas (apresentação, negócio e dados) Camadas Separa as diferentes áreas da aplicação em várias partes com funcionalidades específicas. Com a utilização da orientação a objetos, surgiu a necessidade de se utilizar boas práticas para implementação de código. Diminui o acoplamento entre os módulos do sistema. Alterações em uma parte do código causam pouco ou nenhum impacto no resto do projeto. Maior clareza no código-fonte do projeto. Autores diferentes usam nomes diferentes para as camadas, mas a idéias permanece a mesma. A direção (quem inicia) do processamento é: apresentação -> negócio -> dados As três camadas Camada de apresentação É responsável pela inteface com o usuário. Não faz nenhum processamento. Diversas possibilidades: web, móvel, desktop. Todas as operações devem ser solicitadas à camada de negócio. Camada de negócio É responsável por gerenciar as regras de negócio. Não pode interfacear com o usuário. Não pode acessar diretamente o repositório de dados. Efetua processamento baseado camada de apresentação. em solicitações da Camada de dados Responsável por gerenciar conexões com o banco de dados. O banco de dados é, geralmente, relacional. A aplicação é OO. A camada de dados faz a transição de um modelo para o outro. Fornece um mecanismo reutilizável para acessar os dados. Pacotes Mecanismo em Java que permite a organização de classes. Os sistemas têm centenas, quando não têm milhares de classes. Seria o perfeito caos se não existisse uma regra clara para organizá-las. Cada pacote representa uma idéia, um contexto bem definido para um grupo de classes. Classes que acessam banco de dados ficarão em um pacote de dados. Classes de interface com o usuário terão um pacote de apresentação. As camadas são baseadas em pacotes. Cada camada tem um pacote próprio. Pacotes De uma maneira geral, temos a seguinte organização de pacotes: com.<nome da empresa>.<sistema ou módulo>.<camada> Veja o exemplo: package com.javabasico.rh.apresentacao; public class TelaDeCadastroDePessoa { //métodos e atributos da classe } Pacotes Cada pacote é um diretório no sistema de arquivos. Uma classe pode acessar todas as outras dentro do mesmo pacote. Para acessar pacotes externos, ou mesmo sub-pacotes, temos que usar o 'import'. Dúvidas? Exercício Você já deve ter várias classes que poderiam estar organizadas em alguma camada/pacote. Crie os pacotes para as classes existentes até o momento e analise as camadas que podem ser criadas.