Skip to content

MangusDev/Projeto_Poo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sistema Bancário (Matheus Gaspar Gusmao e Vitor Hugo Camine)

Este projeto implementa um sistema bancário simples em Python utilizando padrões de projeto MVC, Observer e Factory Method.

Padrões de Projeto Utilizados

  1. MVC (Model–View–Controller)

pasta: Model

Contém toda lógica de negócio:

Conta

Banco

Movimentacao

ContaFactory

pasta: View

Exibe saídas e recebe notificações via Observer:

BancoView

pasta: Controller

Interpreta comandos do usuário e chama os métodos corretos do Model:

BancoController

  1. Factory Method

Implementado na classe:

model/conta_factory.py

Responsável por criar novas contas:

class ContaFactory: def criar_conta(self, numero): return Conta(numero)

O Banco usa exclusivamente a factory para criar contas, permitindo extensão futura (ex: conta poupança, conta salário).

  1. Observer

A classe Conta é um Subject que notifica automaticamente todas as Views registradas:

self.observers.append(obs) self.notify("mensagem")

A BancoView implementa:

def update(self, msg): print("[LOG]", msg)

Eventos notificados:

Depósito

Saque

Fechamento da conta

Como Executar o Sistema

Basta rodar:

python main.py

Você verá:

Sistema bancário

Comandos Disponíveis Criar uma conta abrir

Ex.:

abrir 100

Depositar depositar

Ex.:

depositar 100 50.0 20/11/2025 salario

Sacar sacar

Consultar saldo saldo

Extrato por data extrato

Fechar conta (saldo deve ser 0) fechar

Sair

Exemplos de Teste Abrir conta

abrir 101 Conta criada!

Depositar

depositar 101 100 22/11/2025 deposito_inicial Depósito realizado! [LOG] [DEPÓSITO] Conta 101: +100 (deposito_inicial)

Sacar

sacar 101 40 22/11/2025 mercado Saque realizado! [LOG] [SAQUE] Conta 101: -40 (mercado)

Extrato

extrato 101 22/11/2025 22/11/2025 100.00 deposito_inicial 22/11/2025 -40.00 mercado

Como o Observer funciona durante os testes

Sempre que ocorrer:

depósito

saque

fechamento

O sistema automaticamente envia:

[LOG] [DEPÓSITO] Conta 101: +100 (desc)

Sem necessidade de código extra no Controller.

Resumo Final Padrão Onde foi aplicado Objetivo MVC Separação Model / View / Controller Organização e escalabilidade Factory Method ContaFactory Criação padronizada de contas Observer Conta → View Atualizações automáticas em operações

About

Sistema Bancário. Este projeto implementa um sistema bancário simples em Python utilizando padrões de projeto MVC, Observer e Factory Method.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages