https://github.com/victorvazdev/anybank
https://github.com/victorvazdev/anybank
Last synced: 9 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/victorvazdev/anybank
- Owner: victorvazdev
- Created: 2025-02-12T21:04:11.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-17T19:36:32.000Z (over 1 year ago)
- Last Synced: 2025-03-16T23:52:23.329Z (over 1 year ago)
- Language: Dart
- Size: 8.79 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# đŠ AnyBank - Simulador de Contas BancĂĄrias em Dart
**AnyBank** Ă© um projeto em Dart que simula mĂșltiplos tipos de contas bancĂĄrias com comportamentos distintos, utilizando conceitos de **programação orientada a objetos**, **herança**, **polimorfismo**, **mixins** e **encapsulamento**.
---
## đ Funcionalidades
- đ **Conta Corrente**: permite envio com cheque especial (emprĂ©stimo).
- đ° **Conta Poupança**: inclui cĂĄlculo de rendimento.
- đą **Conta SalĂĄrio**: permite depĂłsitos com identificação do empregador.
- đ **Conta Empresa**: aplica taxa sobre transaçÔes usando mixin `Imposto`.
- đ **Conta Investimento**: aplica taxa sobre recebimentos e envios.
- đ Exibe o saldo de forma formatada a cada operação.
---
## đ§± Arquitetura
```
lib/
âââ conta.dart # Classe abstrata base
âââ conta_corrente.dart # Subclasse: Conta Corrente
âââ conta_poupanca.dart # Subclasse: Conta Poupança
âââ conta_salario.dart # Subclasse: Conta SalĂĄrio
âââ conta_empresa.dart # Subclasse: Conta Empresa
âââ conta_investimento.dart # Subclasse: Conta Investimento
âââ imposto.dart # Mixin de taxa de imposto
bin/
âââ main.dart # Ponto de entrada do app
```
---
## đ Exemplo de Uso
```dart
ContaCorrente contaChris = ContaCorrente('Chris', 4000);
contaChris.imprimeSaldo();
contaChris.enviar(4300); // Usa limite de empréstimo (300)
ContaPoupanca contaDenize = ContaPoupanca('Denize', 4000);
contaDenize.calculaRendimento(); // Aplica 5% de rendimento
ContaSalario contaCatarina = ContaSalario('Catarina', 5000, 'Empresa X', '101010101000110');
contaCatarina.depositar(15000); // Deposita com CNPJ do empregador
ContaEmpresa contaMatheus = ContaEmpresa('Matheus', 2000);
contaMatheus.enviar(1000); // Aplica taxa de 3%
ContaInvestimento contaRoberta = ContaInvestimento('Roberta', 2000);
contaRoberta.receber(1000); // Aplica taxa de 3%
```
---
## đ§ Conceitos Utilizados
* **Classes abstratas** para padronizar contratos (Conta)
* **Herança** para reutilizar e estender comportamento
* **Mixins** (Imposto) para aplicar funcionalidades de forma modular
* **Encapsulamento** com atributos privados (_saldo)
* **Sobrescrita de métodos** (@override) para comportamento customizado
---
## Exemplo de SaĂda