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.581 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 4: RELAÇÃO DO SOLID COM GOF (CRIACIONAIS)

Factory Method

Relaciona com:
DIP (depende de interface).
OCP (extensível).

Factory Method - DIP + OCP

Sem Factory (acoplado):
class Servico {
    Email email = new Email();
}

Com Factory + abstração:
interface Notificacao {
    void enviar(String msg);
}
class Email implements Notificacao {
    public void enviar(String msg) {}
}
class SMS implements Notificacao {
    public void enviar(String msg) {}
}
class FabricaNotificacao {
    public static Notificacao criar(String tipo) {
        if (tipo.equals("email")) return new Email();
            return new SMS();
    }
}
class Servico {
    private Notificacao notificacao;
    public Servico(Notificacao notificacao) {
        this.notificacao = notificacao;
    }
}

DIP: depende da interface.
OCP: adiciona novos tipos sem alterar o Servico.

Abstract Factory

Relaciona com:
DIP
OCP
ISP
interface Botao {
    void render();
}
interface Checkbox {
    void marcar();
}
class BotaoWindows implements Botao {
    public void render() {}
}
class CheckboxWindows implements Checkbox {
    public void marcar() {}
}
interface FabricaGUI {
    Botao criarBotao();
    Checkbox criarCheckbox();
}
class FabricaWindows implements FabricaGUI {
    public Botao criarBotao() { return new BotaoWindows(); }
    public Checkbox criarCheckbox() { return new CheckboxWindows(); }
}

DIP: tudo baseado em interface.
OCP: nova fábrica sem alterar código existente.
ISP: interfaces pequenas (Botao, Checkbox).

Builder

Relaciona com:
SRP (separa construção do objeto).
Sem Builder (classe inchada):
class Usuario {
    String nome;
    String email;
    String senha;
    public Usuario(String nome, String email, String senha) {
        this.nome = nome;
        this.email = email;
        this.senha = senha;
    }
}

Com Builder:
class Usuario {
    String nome;
    String email;
    String senha;
}
class UsuarioBuilder {
    private Usuario u = new Usuario();
    public UsuarioBuilder nome(String nome) {
        u.nome = nome;
        return this;
    }
    public UsuarioBuilder email(String email) {
        u.email = email;
        return this;
    }
    public Usuario build() {
        return u;
    }
}

SRP: separa construção da estrutura do objeto.

Resumo Visual

SOLID - princípios (como pensar).
GoF - padrões (como implementar).

Factory - cria objetos.
Abstract Factory - cria famílias.
Builder - constrói objetos complexos.

CONCLUSÃO

SOLID guia o design.
GoF aplica soluções práticas.

Eles não são a mesma coisa, mas trabalham juntos.

Use SOLID para decidir COMO estruturar.
Use GoF para decidir COMO implementar.
RELACAO DO SOLID COM GOF (CRIACIONAIS)
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.
RELACAO DO SOLID COM GOF (CRIACIONAIS)
RELACAO DO SOLID COM GOF (CRIACIONAIS)
RELACAO DO SOLID COM GOF (CRIACIONAIS)
RELACAO DO SOLID COM GOF (CRIACIONAIS)
RELACAO DO SOLID COM GOF (CRIACIONAIS)
RELACAO DO SOLID COM GOF (CRIACIONAIS)
RELACAO DO SOLID COM GOF (CRIACIONAIS)
RELACAO DO SOLID COM GOF (CRIACIONAIS)
RELACAO DO SOLID COM GOF (CRIACIONAIS)
RELACAO DO SOLID COM GOF (CRIACIONAIS)
RELACAO DO SOLID COM GOF (CRIACIONAIS)
RELACAO DO SOLID COM GOF (CRIACIONAIS)
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

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

Tags automáticas em URLs com a classe urlmatch da PHP

Trabalhando com datas em PHP

Capturando conteúdo de sites em PHP

PHP >= 5.1 x horário de verão brasileiro

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.