Fala pessoal, hoje iremos falar dos Padrões GoF, mas o que é GoF?

Primeiro, deixa eu dizer o que significa GoF, GoF é uma sigla para "Gang of Four" ou em PT-BR, Gangue dos Quatro, esse nome surgir porque em 1994 quatro autores, Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides, publicaram o livro o Design Patterns: Elements of Reusable Object-Oriented Software que mostrava conceitos de padrões de projeto para o desenvolvimento de software. Graças ao livro e aos quatro autores que os padrões citados ficaram conhecidos com esse nome.

Os Padrões GoF são 23 padrões que são divididos em 3 grupos cada um dos grupos visa solucionar um tipo de cenário com um determinado problema.

Grupo 1  - Padrões de Projeto de Criação

Estes padrões lidam com o processo de criação de novos objetos de uma forma que ele pode ser desacoplado do seu sistema de implementação. Isso fornece mais flexibilidade em decidir quais objetos precisam ser criados para um determinado  caso ou cenário.
  • Factory Method : Cria instâncias de classes derivadas
  • Abstract Factory : Cria instâncias de muitas classes  several classes pertencentes a diferentes famílias
  • Builder : Separa a construção do objeto de sua representação
  • Prototype : Cria um objeto duplicado ou um clone do objeto
  • Singleton : Garante que a classe só tenha uma instância


Grupo 2  - Padrões de Projeto Estruturais

Estes padrões lidam com a composição das estruturas dos objetos. O conceito de herança é usado para compor interfaces e definir várias formas de compor objetos para obter novas funcionalidades. 
  • Adapter : Combinar interfaces de classes diferentes
  • Bridge : Separar uma abstração de objeto de sua implementação
  • Composite : Uma estrutura em árvore de simples e objetos compostos
  • Decorator : Adicionar responsabilidades para objetos dinamicamente
  • Façade : Uma simples classe que representa um complexo sistema inteiro
  • Flyweight : Minimizar o uso da memória compartilhando o máximo de dados possível com objetos similares
  • Proxy: Fornece um objeto substituto, que faz referência a outro objeto



Grupo 3  - Padrões de Projeto Comportamentais


Estes padrões lidam com o processo de comunicação, gerenciamento de relações, e responsabilidades entre objetos.

  • Chain of Responsibility: Passa uma requisição entre uma lista ou objetos encadeados.
  • Command: Embrulha uma requisição em um objeto como um comando e passa para o objeto invocador
  • Interpreter: Implementar uma linguagem computacional especializada para resolver problemas específicos rapidamente
  • Iterator: Iterators são usados para acessar os elementos de um objeto agregado sequencialmente sem expor sua
  • Mediator: Fornece uma interface unificada para um conjunto de interfaces em um subsistema
  • Memento: Oferece a capacidade de restaurar um objeto ao seu estado anterior(rollback)
  • Observer: Objetos registrados para observar um evento que pode ser disparado por outro objeto.
  • State: Uma maneira limpa para um objeto mudar parcalmente seu tipo em tempo de execução
  • Strategy: Algoritimos podem ser selecionados em tempo real
  • Visitor: Um modo e separar um algoritmo de um objeto
  • Template Method: Descreve o esqueleto de um programa



Bom, esse post foi só pra dar uma explicação simples e básica do que é, de onde surgiu e como funciona um pouco desses padrão de projeto, para auxiliar no momento de escolha de um conjunto de padrões para aplicar em seu projeto, tendo uma gama maior de opções.

No comments

Tecnologia do Blogger.