Skip to content

Joao-Vieira- Desafio6-SOLID#38

Open
Jvieyrah wants to merge 1 commit intoalexsaspbr:solidfrom
Jvieyrah:solid
Open

Joao-Vieira- Desafio6-SOLID#38
Jvieyrah wants to merge 1 commit intoalexsaspbr:solidfrom
Jvieyrah:solid

Conversation

@Jvieyrah
Copy link

Pacotes
com.lojaonline.pedido

com.lojaonline.pagamento

com.lojaonline.envio

com.lojaonline.notificacao

com.lojaonline.servicos

com.lojaonline.repositorio

Classes e Interfaces
SRP (Princípio da Responsabilidade Única)
com.lojaonline.pedido.Pedido: Responsável apenas por gerenciar os dados do pedido (itens, status, etc.).

com.lojaonline.pagamento.ProcessadorPagamento: Responsável apenas por processar o pagamento.

com.lojaonline.envio.GerenciadorEnvio: Responsável apenas por gerenciar o envio do pedido.

com.lojaonline.notificacao.Notificador: Responsável apenas por enviar notificações (e-mail, SMS, etc.).

OCP (Princípio do Aberto/Fechado)
com.lojaonline.pagamento.MetodoPagamento (Interface): Contrato para novos métodos de pagamento.

com.lojaonline.pagamento.CartaoCredito (Classe): Implementa MetodoPagamento.

com.lojaonline.pagamento.PayPal (Classe): Implementa MetodoPagamento.

com.lojaonline.pagamento.Boleto (Classe): Implementa MetodoPagamento.

LSP (Princípio da Substituição de Liskov)
com.lojaonline.pagamento.ProcessadorPagamento: Recebe MetodoPagamento e pode processar qualquer classe que o implemente sem problemas.

ISP (Princípio da Segregação de Interfaces)
com.lojaonline.repositorio.Repositorio (Interface): Define métodos gerais de persistência.

com.lojaonline.repositorio.PedidoRepositorio (Interface): Estende Repositorio e adiciona métodos específicos para pedidos (buscarPorStatus, etc.).

com.lojaonline.notificacao.NotificadorEmail (Classe): Implementa Notificador.

com.lojaonline.notificacao.NotificadorSMS (Classe): Implementa Notificador.

DIP (Princípio da Inversão de Dependência)
com.lojaonline.servicos.ServicoPedido: Depende das abstrações PedidoRepositorio, ProcessadorPagamento e GerenciadorEnvio (interfaces), não de suas implementações concretas.

com.lojaonline.pagamento.ProcessadorPagamento: Depende da abstração MetodoPagamento.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant