Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

FlexOrder - Refatoração com Design Patterns

Aluno: Matheus Maciel de Paula

Disciplina: Engenharia de Software

Descrição

Refatoração do sistema monolítico de pedidos aplicando padrões de projeto Strategy, Decorator e Facade para melhorar a manutenibilidade do código.

Padrões Aplicados

1. Strategy Pattern

Usei o Strategy para separar as regras de pagamento e frete. Criei classes separadas para cada tipo (PIX, Cartão, Frete Normal, etc). Isso resolve o problema dos vários "elif" do código original.

2. Decorator Pattern

Usei Decorator para aplicar descontos e taxas. Assim posso combinar diferentes descontos (como Desconto PIX) com taxas (como Embalagem Presente) sem modificar a classe principal.

3. Facade Pattern

Criei uma Facade para simplificar o processo de checkout. Antes era um método grande e complexo, agora é uma interface simples que orquestra tudo.

Princípios SOLID

SRP - Single Responsibility

Cada classe tem uma única responsabilidade. Exemplo: PagamentoPix só cuida de pagamentos via PIX.

OCP - Open/Closed

O sistema está aberto para extensão mas fechado para modificação. Para adicionar novo método de pagamento, basta criar nova classe.

Como Executar

python checkout_refatorado.py

About

Refatoração do sistema de pedidos com Design Patterns

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages