Pular para o conteúdo

Solid RELAÇÃO COM GOF

O objetivo desse documento é mostrar que o design SOLID possui 5 princípios relacionados com os criacionais do GOF(GANG OF FOUR).
Assim que um princípio mostra e faz, o GOF é a implementação desse design.
trogmaiu eradua
Hits: 1.576 Categoria: PHP Subcategoria: Avançado
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Parte 2: SOLID (EXPLICAÇÂO)

S - Single Responsibility Principle (SRP)
Uma classe deve ter um único motivo para mudar:
class Relatorio {
    public String gerar() {
    return "dados do relatório";
  }
}
class Impressora {
    public void imprimir(String conteudo) {
    System.out.println(conteudo);
  }
}

✔ Separou responsabilidade: gerar ≠ imprimir

O - Open/Closed Principle (OCP)
Aberto para extensão, fechado para modificação:
interface Desconto {

    double aplicar(double valor);
}
class DescontoNatal implements Desconto {
    public double aplicar(double valor) {
    return valor * 0.9;
  }
}

✔ Você adiciona novos descontos sem mexer no código existente.

L - Liskov Substitution Principle (LSP)
Subclasses devem poder substituir a classe base:
class Ave {
    public void voar() {}
};
class Pardal extends Ave {}
class Pinguim extends Ave {
    // problema: pinguim não voa;
}

✔ Aqui está errado → quebra o princípio

I - Interface Segregation Principle (ISP)
Interfaces pequenas e específicas:
interface Trabalhador {
    void trabalhar();
}
interface Comedor {
    void comer();
}

✔ Evita obrigar classes a implementar o que não usam

D - Dependency Inversion Principle (DIP)
Dependa de abstrações, não de implementações:
interface Notificacao {
    void enviar(String msg);
}
class Email implements Notificacao {
    public void enviar(String msg) {
System.out.println("Email: " + msg);
  }
}
class Servico {
    private Notificacao notificacao;
    public Servico(Notificacao notificacao) {
        this.notificacao = notificacao;
    }
}

✔ Classe depende da interface, não do Email direto.

REFERÊNCIA: https://www.youtube.com/watch?v=-vnEq9IdIJQ&pp=ygUJc29saWQgcGhw

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
   1. Solid RELAÇÃO COM GOF (Explicação)
   2. SOLID (EXPLICAÇÂO)
   3. GOF CRIACIONAIS (EXPLICAÇÃO)
   4. RELAÇÃO DO SOLID COM GOF (CRIACIONAIS)

Boas Práticas e Padrões Idiomáticos em Go e C

Utilizando o Smarty template no PHP

Capturando conteúdo de sites em PHP

Guia completo do Ocomon no Linux - Módulo cliente, abertura de ocorrência (exclusivo VOL)

Trabalhando com datas em PHP

Guia completo do Ocomon módulo admin no Linux (exclusivo VOL)

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.