Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

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

Mais conteúdos dessa disciplina