AN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: red; FONT-FAMILY: Verdana; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial">
PAN>
AN lang=EN-US style="FONT-SIZE: 10pt; COLOR: windowtext; FONT-FAMILY: Verdana">
Desenvolvimento para desktop com Java – Parte 2 Desenvolvimento das camadas de Lógica de Domínio e Acesso a Dados Um guia com os primeiros passos no desenvolvimento de aplicativos Java para desktop De que se trata o artigo: Desenvolvimento de aplicações Java SE utilizando divisão em camadas e padrões de projeto. É apresentado um guia com exemplos para implementação das camadas Lógica de Domínio e Acesso a Dados. Para que serve: Apresentar os primeiros passos para quem está iniciando no desenvolvimento de aplicações em Java. Nesse artigo são abordados temas como: modelagem de classes, mapeamento objeto-relacional e persistência de dados através da JPA e Hibernate. Em que situação o tema é útil: Os conceitos apresentados no artigo são úteis e facilmente aplicáveis no desenvolvimento de aplicativos empresariais desenvolvidos em Java, que se propõem a automatizar processos de negócio e que se conectam a bancos de dados. Desenvolvimento para desktop com Java – Parte 2: O desenvolvimento de aplicações para desktop em Java é menos frequente do que para web ou dispositivos móveis. Hoje é possível implantar sistemas escritos em Java em ambientes antes dominados por linguagens nativas, mas, além da concorrência com ambientes RAD e linguagens nativas, o universo Java com suas APIs e jargões muitas vezes espanta quem quer trabalhar com Java nesse segmento. No artigo são apresentados conceitos e primeiras decisões que devem ser levadas em consideração para que o desenvolvimento desktop seja bem sucedido. Ele será continuado em partes adicionais, com o objetivo de apresentar a criação de uma aplicação exemplo. No primeiro artigo da série apresentamos o modelo de programação em três camadas e uma breve introdução aos padrões de projeto. Foi também proposto o desenvolvimento de uma funcionalidade para registro de cobranças bancárias, para praticar os conceitos apresentados. No segundo artigo, vamos colocar a mão na massa e começar a codificar o registro de cobranças bancárias. Nesse artigo será abordada uma questão que muitas vezes surge quando começamos ou fazemos manutenção em um sistema desenvolvido em Java: como persistir os dados gerenciados pelo sistema? JDBC? JPA? Hibernate? Aliás, o que significam mesmo essas siglas? Começaremos a implementação pela camada de Lógica de Domínio, pois nela representaremos, em um modelo orientado a objetos (OO), as informações e regras da funcionalidade que nos propomos a automatizar. Começando por essa camada, fica mais fácil entender e definir com clareza o escopo da funcionalidade. Antes de iniciarmos o desenvolvimento propriamente dito, vamos criar um projeto no Eclipse. A versão utilizada para a construção do exemplo é a 3.4 (Ganymede). Os detalhes da criação e configuração do projeto são apresentados no quadro “Criando e configurando o projeto no Eclipse”. Novas configurações serão necessárias e explicadas à medida que avançarmos no desenvolvimento. Lógica de Domínio A camada Lógica de Domínio possui a representação das entidades tratadas pelo sistema, com suas informações, regras e operações. Vamos supor que foi feito um levantamento preliminar com os futuros usuários do sistema, que informaram ao analista que: 1. O sistema deve ter uma tela na qual será possível digitar os dados de uma cobrança bancária, dessas que os bancos disponibilizam para seus clientes em forma de boleto (Figura 1); 2. O sistema deverá validar os dados de cada cobrança, para evitar que sejam armazenados sem data de vencimento, valor do documento e os dados do sacado; 3. Após a confirmação dos dados, o sistema deverá armazená-los em um banco de dados, para controle posterior do departamento financeiro. Modelagem: Criando um modelo orientado a objetos que represente a situação do mundo real Através desses requisitos e do documento de exemplo, poderemos começar a transformar o modelo de negócio em um modelo orientado a objetos. Figura 1. Exemplo de um boleto de cobrança. Podemos perceber com clareza que tudo gira em torno da cobrança bancária, e a representaremos através de uma entidade em nosso modelo OO. Essa entidade será modelada como uma classe, à qual daremos o nome de Cobranca. As informações tratadas por essa classe podem ser obtidas a partir do documento de exemplo, e elas são modeladas como atributos[1]. Foi incluído um atributo id, uma vez que os atributos levantados a partir do documento de exemplo não permitem identificar unicamente uma cobrança, e toda entidade deve ter um atributo que, de forma confiável, a diferencie das demais. Já as operações que a classe realizará, podemos inferir a partir dos requisitos enumerados anteriormente: validar e salvar os dados de cada cobrança. As operações são modeladas como métodos. A Figura 2 mostra a classe ...