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.580 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

Abordagem exemplificada de orientação à objeto com PHP 5

Criando sites para celular com WML

Paginação de resultados em PHP/MySQL

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.