Prévia do material em texto
SOLID · São princípios da programação orientada a objetos. O SOLID é uma sigla em inglês para cinco princípios de projeto. O objetivo é fazer programas mais compreensíveis, flexíveis e sustentáveis. Os 5 princípios: RESUMO: SRP - Princípio de Responsabilidade Única: Princípio da Responsabilidade Única — Uma classe deve ter um, e somente um, motivo para mudar. OCP – Princípio Aberto/Fechado: Preza que uma classe deve estar fechada para alteração e aberta para extensão. PARA ALTERAÇÃO FECHADA PARA EXTENSÃO ABERTA LSP— Princípio da Substituição de Liskov: Princípio da substituição de Liskov — Uma classe derivada deve ser substituível por sua classe base. SUBCLASSE POR SER SUBSTITUÍDA PELA SUPERCLASSE ISP - Princípio da Segregação da Interface — Uma classe não deve ser forçada a implementar interfaces e métodos que não irão utilizar. Classe não precisa implementar métodos e interfaces desnecessárias DIP - Princípio de Inversão de Dependência: Dependa de abstrações e não de implementações. DEPENDER DE ABSTRAÇÃO SIM DEPENDER DE IMPLEMENTAÇÃO NÃO “S” Single Responsibility Principle (Princípio de responsabilidade única): · Uma classe deve ter uma e apenas uma razão para mudar. · Ou seja, uma classe deve ser especializada em um único assunto. · A classe deve possuir apenas uma responsabilidade dentro do software. · Em resumo, a classe deve ter só uma tarefa para executar. “O” Open-Closed Principle (Princípio aberto/fechado): · Objetos devem estar DISPONÍVEIS PARA EXTENSÃO. · Mas FECHADOS PARA MODIFICAÇÃO. · Ou seja, é quando novos comportamentos e recursos precisam ser adicionados (estendidos) no software, e não alterar o código fonte original. · EXEMPLO: Um sistema de RH tem duas classes, uma com contratos de trabalho dos funcionários e uma classe para processar a folha de pagamento. Supondo que a empresa cresceu, e agora tem funcionários PJ. Se modificar a classe para atender funcionários PJ, estaremos quebrando o princípio SOLID. Alterar uma classe que já está funcionando para incluir novo comportamento, causa risco de erros naquilo que já funciona. Como adicionamos um novo comportamento sem alterar o código fonte já existente? Pelo princípio SOLID, o ideal é criar uma interface, exemplo: criar a interface remuneravel contendo o método remuneracao. O novo comportamento fica isolado, e o que estava funcionando continua funcionando. “L” Liskov Substitution Principle (Princípio de substituição de Liskov): · Uma SUBclasse deve ser substituível por sua SUPERclasse. · Ou seja, uma classe derivada deve ser substituível por sua classe base. · Seguir o LSP nos permite usar o polimorfismo com mais confiança. · Exemplos de violação do LSP: · Sobrescrever/implementar um método que não faz nada; · Lançar uma exceção inesperada; · Retornar valores de tipos diferentes da classe base; “I” Interface Segregation Principle (Princípio de segregação de interface): · Uma classe não deve ser obrigada a implementar métodos e interfaces que não serão utilizados. “D” Dependency Inversion Principle (Princípio de inversão de dependência): · Dependa de abstrações e não de implementações. · Módulos de alto nível não devem depender de módulos de baixo nível. Ambos devem depender da abstração. · As abstrações não devem depender de detalhes. Detalhes devem depender de abstrações. SOLID são cinco princípios da programação orientados a objetos que facilitam no desenvolvimento de softwares, tornando-os fáceis de manter e estender. Esses princípios podem ser aplicados a qualquer linguagem de POO. image1.jpeg image2.png