💻 Criando um Banco Digital com Java, POO e Arquitetura MVC
Introdução
Você já imaginou desenvolver um sistema bancário completo com Java? Neste artigo, compartilho um projeto que desenvolvi para simular um Banco Digital, aplicando conceitos de Programação Orientada a Objetos (POO) e arquitetura MVC (Model-View-Controller). A ideia é mostrar como essas tecnologias podem ser usadas na prática para criar sistemas robustos e organizados.
Todo o projeto está disponível no GitHub:
🔗 Banco Digital - Sistema de Gerenciamento de Contas Bancárias
💡 O Desafio
O objetivo era criar um sistema capaz de:
- Cadastrar contas correntes e contas poupança;
- Realizar depósitos, saques e transferências entre contas;
- Exibir extratos bancários;
- Aplicar automaticamente rendimento mensal nas contas poupança (0,5%);
- Fazer toda a validação de saldo e valores;
- Manter a aplicação organizada com arquitetura MVC.
🧱 Estrutura do Projeto
Adotei o padrão MVC para manter o projeto limpo e organizado:
📦 banco-digital
├── application # Ponto de entrada da aplicação
├── controller # Lógica de controle (input)
├── model # Entidades, serviços e exceções
├── view # Exibição dos dados (console)
🚀 Funcionalidades Implementadas
1. Criação de Contas
ContaBancaria cc = new ContaCorrente(cliente);
ContaBancaria cp = new ContaPoupanca(cliente);
Cada conta tem número, agência, titular e saldo. Contas poupança ganham rendimento, e contas correntes têm cheque especial.
2. Operações Bancárias
O serviço OperacoesBancariasServices
gerencia transações como:
depositar(conta, 1000.0);
sacar(conta, 200.0);
transferir(contaOrigem, contaDestino, 300.0);
As operações são registradas com logs e validadores para evitar valores negativos ou nulos.
3. Rendimento na Poupança
cp.aplicarRendimento(); // Aplica 0,5% ao saldo atual
O rendimento é aplicado automaticamente com um simples método.
4. Extrato no Console
ContaBancariaFormatter.imprimirExtrato(cc);
Saída:
=== Extrato Conta Corrente ===
Agência: 0001
Número da conta: 1
Titular: Luna Souza
Saldo: R$ 800.00
==============================
🧠 Conceitos Aplicados
- POO: uso de herança, encapsulamento, polimorfismo e abstração.
- MVC: separação entre regras de negócio, exibição e controle.
- Tratamento de exceções: controle de erros como saldo insuficiente ou valores inválidos.
- Logs e validações: cada operação é registrada e validada.
🔧 Tecnologias Utilizadas
- Linguagem: Java
- Estrutura: POO + MVC
- Tratamento de erros: Exceptions personalizadas
- Simulação de usuários: Gerador de nomes aleatórios
📌 Resultados
O sistema é executado no console, simulando transações reais de um banco. Apesar de simples visualmente, sua estrutura é sólida e pronta para expansão futura, como por exemplo:
- Interface gráfica com JavaFX
- Persistência com banco de dados
- API REST com Spring Boot
🧑💻 Conclusão
Esse projeto foi uma excelente forma de reforçar conceitos fundamentais do Java e de boas práticas de desenvolvimento. Recomendo fortemente que você tente criar algo parecido do zero — a prática é o melhor caminho para aprender de verdade.
Quer ver o código funcionando?