Repository navigation
Releases: marmundo/SOLID
Releases · marmundo/SOLID
Release list
Aplicação do Princípio de Segregação de Interface
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
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
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
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
v1.1 extrai metodo para uma nova classe
Código com Problemas SOLID
v1.0 first commit