Skip to content

Releases: marmundo/SOLID

Aplicação do Princípio de Segregação de Interface

Choose a tag to compare

@marmundo marmundo released this 04 Oct 00:18
Principio de Segregacao de Interface

Nenhuma classe é obrigada a implementar métodos que não são necessários devido a interfaces. Neste caso foi necessário criar a interface ReajusteTributavel com apenas um método para Reajustes Tributaveis. No exemplo Anuenio que é tributável, tem que implementar reajuste (métodos de valor e data) e o Tributavel. Já o Promocao, não tirbutável, implementa apenas a interface Reajuste

Aplicação do Princípio de Inversão de Dependência

Choose a tag to compare

@marmundo marmundo released this 04 Oct 00:23
Principio de Inversao de Dependencia

Na inversao de dependencia, a implementacao depende da abstracao. Toda classe deve implementar uma interface. As classes que utilizam o servico de uma classe deve depender da interface e não da implementação da interface.

Aplicação do Princípio de Liskov

Pre-release

Choose a tag to compare

@marmundo marmundo released this 04 Oct 00:17
Implementa Principio de Substituicao de Liskov

Foi criado uma nova regra de negocio para promover um funcionário e um novo modelo de funcionario que é o tercerizado. O tercerizado parece um funcionario mas não é. Isto é devido a empresa que o contrata que ajusta seu salario e o promove e não a empresa contratante. Desta forma, tercerizado não pode herdar de funcionario. Assim, a melhor forma foi criar uma classe que contém os atributos comuns a Funcionario e Tercerizado (Dados Pessoais) e fazer com que Funcionario e Tercerizado sejam compostos por Dados Pessoais

Aplicação do Princípio de Aberto Fechado

Choose a tag to compare

@marmundo marmundo released this 04 Oct 00:16
Implementa Principio Open-Close

Retira a lógica de validacao da classe torna as validacoes abertas para extensoes e fechadas para modificações. Cada nova validacao deve implementar a interface

Aplicação do Princípio de Responsabilidade Única

Choose a tag to compare

@marmundo marmundo released this 04 Oct 00:15
v1.1

extrai metodo para uma nova classe

Código com Problemas SOLID

Pre-release

Choose a tag to compare

@marmundo marmundo released this 04 Oct 00:14
v1.0

first commit