A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Vendo o código como um bolo... com várias camadas! Interface com o usuário (GUI) Comunicação Negócio Dados.

Apresentações semelhantes


Apresentação em tema: "Vendo o código como um bolo... com várias camadas! Interface com o usuário (GUI) Comunicação Negócio Dados."— Transcrição da apresentação:

1 Vendo o código como um bolo... com várias camadas! Interface com o usuário (GUI) Comunicação Negócio Dados

2 Fachada servicos() Coleção de Negócio servicosEspecificos() 1..* Interface Negócio-dados inserir() remover() atualizar() procurar() > Coleção de dados Básica de negócio getDado() 0..* existe() inserir() remover() atualizar() procurar() existe() Negócio Dados GUI 1..* Arquitetura de software

3 Classes Básicas de Negócio public class Conta { private double saldo; private String numero; private Cliente correntista;... public void creditar(double valor) { saldo = saldo + valor; } Cliente, Livro, Animal, Veiculo

4 Interfaces Negócio-Dados RepositorioClientes, RepositorioLivros, RepositorioAnimais, RepositorioVeiculos public interface RepositorioContas { public void inserir(Conta conta) throws...; public void atualizar(Conta conta) throws...; public void remover(String numero) throws...; public Conta procurar(String numero) throws...; public RepositorioContas procurar(Conta conta) throws...; public boolean existe(String numero) throws...; public IteratorContas getIterator() throws...; }

5 Interface Iterator public interface IteratorContas { public boolean hasNext(); public Conta next(); } IteratorClientes, IteratorLivros, IteratorAnimais, IteratorVeiculos

6 Coleção de dados iterável public class IteratorContasArray implements IteratorContas { private Conta[] contas; private int proximo;... public IteratorContasArray(Conta[] conta) {...} public void add(Conta conta) {...} public boolean hasNext() {...} public Conta next() {...} }

7 Classes Coleção de Dados public class RepositorioContasArray implements RepositorioContas { private Conta[] contas; private int indice; public void inserir(Conta conta) { contas[indice] = conta; indice = indice + 1; }... } RepositorioContasArquivo, RepositorioContasLista RepositorioContasBDR, RepositorioContasBDOO

8 public RepositorioContas procurar(Conta conta) { RepositorioContas resposta = new RepositorioContasArray();... while(!achou && i<indice) { if (conta.match(contas[i])) { resposta.inserir(contas[i]); }... } return resposta; } Classes Coleção de Dados

9 public IteratorContas getIterator() { IteratorContas resposta = new IteratorContasArray(contas); return resposta; } Classes Coleção de Dados

10 Método match public class Conta {... public boolean match(Conta conta) { Correntista corr = conta.getCorrentista(); boolean resp = false; if (numero != null && correntista != null) resp = numero.equals(conta.getNumero()) && correntista.match(corr); else if (numero != null) resp = numero.equals(conta.getNumero()); else if (correntista != null) resp = correntista.match(corr); return resp; }

11 Classes Coleção de Negócio public class CadastroContas { private RepositorioContas contas; public CadastroContas(RepositorioContas rep) { contas = rep; } public void cadastrar(Conta conta) throws ContaJaCadastradaException { if (!contas.existe(conta.getNumero())) { contas.inserir(conta); } else throw new... }... } CadastroClientes, CadastroLivros, CadastroAnimais, CadastroVeiculos

12 Classe Fachada public class Banco { private CadastroContas contas; private CadastroClientes clientes;... public void cadastrar(Conta conta) throws ClienteNaoCadastradoException { Cliente c = conta.getCorrentista(); if (clientes.existe(c.getCodigo()) { contas.cadastrar(conta); } else { throw new ClienteNaoCadastradoException(); } Livraria, Zoo, Locadora


Carregar ppt "Vendo o código como um bolo... com várias camadas! Interface com o usuário (GUI) Comunicação Negócio Dados."

Apresentações semelhantes


Anúncios Google