Na etapa anterior, implementamos a Classe Conta como uma Classe Abstrata.
Nesta etapa, vamos criar a Interface ContaRepository, que fornecerá a assinatura dos Métodos necessários para manipular os Objetos das Classes ContaCorrente e ContaPoupanca, que posteriormente serão armazenados em uma Collection.
Os Métodos da Interface ContaRepository, posteriormente, serão implementados em uma Classe, de modo a manter os detalhes da implementação (Métodos Construtores, Get e Set, por exemplo), encapsulados na nova Classe. A Interface fornece apenas as assinaturas dos Métodos. O Diagrama de Classes do nosso Projeto ficará da seguinte forma:
classDiagram
class Conta {
<<Abstract>>
- numero : int
- agencia : int
- tipo : int
- titular : String
- saldo : float
+ int getNumero()
+ int getAgencia()
+ int getTipo()
+ String getTitular()
+ float getSaldo()
+ void setNumero(int numero)
+ void setAgencia(int agencia)
+ void setTipo(int tipo)
+ void setTitular(String titular)
+ void setSaldo(float saldo)
+ boolean sacar(float valor)
+ void depositar(float valor)
+ void visualizar()
}
class ContaCorrente {
- limite : float
+ float getLimite()
+ void setLimite(float limite)
+ boolean sacar(float valor)
+ void visualizar()
}
class ContaPoupanca {
- aniversario : int
+ int getAniversario()
+ void setAniversario(int aniversario)
+ void visualizar()
}
class ContaRepository{
<< Interface >>
+ void procurarPorNumero(int numero)
+ void listarTodas()
+ void cadastrar(Conta conta)
+ void atualizar(Conta conta)
+ void deletar(int numero)
+ void sacar(int numero, float valor)
+ void depositar(int numero, float valor)
+ void transferir(int numeroOrigem, int numeroDestino, float valor)
}
Conta <|-- ContaCorrente
Conta <|-- ContaPoupanca
No pacote principal da nossa aplicação (conta), vamos criar o pacote repository, que armazaenará a Interface que define os Métodos de Consulta, Inserção, Atualização e Exclusão dos dados das Contas (CRUD), além dos Métodos Bancários: Saque, Depósito e Transferências:
- No lado esquerdo superior, na Guia Package explorer, clique com o botão direito do mouse sobre o pacote principal da nossa aplicação (conta) e clique na opção New 🡪 Package, como mostra a animação abaixo:
- Na janela New Java Package, no item Name, informe o nome da Package: conta.repository, como mostra a figura abaixo:
- Clique no botão Finish para concluir.
Agora vamos criar a Interface ContaRepository no Pacote repository.
- Clique com o botão direito do mouse sobre o Pacote conta.repository e na sequência, clique na opção New 🡪 Interface, como mostra a animação abaixo:
- Na janela New Java Interface, no item Name, digite o nome da Interface (ContaRepository), como mostra a figura abaixo:
- Clique no botão Finish para concluir.
- Na imagem abaixo, vemos o código inicial da Interface ContaRepository:
Vamos implementar o código da Interface ContaRepository. Vamos analisar o código abaixo:
Linhas 8 a 12: Assinamos os Métodos do CRUD (Create, Read, Update e Delete), dos Objetos das Classes ContaCorrente e ContaPoupanca. Estes Métodos serão implementados na Classe ContaController, que será implementada na próxima Tarefa do Projeto Conta Bancária.
Linhas 15 a 17: Assinamos os Métodos de Operações Bancárias (Saque, Deposito e Transferencia), dos Objetos das Classes ContaCorrente e ContaPoupanca. Estes Métodos também serão implementados na Classe ContaController, que será implementada na próxima Tarefa do Projeto Conta Bancária.
O Código completo da Interface ContaRepository, você confere abaixo:
package conta.repository;
import conta.model.Conta;
public interface ContaRepository {
// CRUD da Conta
public void procurarPorNumero(int numero);
public void listarTodas();
public void cadastrar(Conta conta);
public void atualizar(Conta conta);
public void deletar(int numero);
// Métodos Bancários
public void sacar(int numero, float valor);
public void depositar(int numero, float valor);
public void transferir(int numeroOrigem, int numeroDestino, float valor);
}Observe que não houve nenhuma mudança visível no projeto. Na próxima tarefa, os Métodos assinados na Interface ContaRepository serão implementados na Classe ContaController.








Voltar