Entenda os Padrões de Projeto – Design Patterns (GoF – GRASP) de forma simples e direta. Um Padrão de Projeto (Design Pattern), é uma solução geral para um problema que ocorre com frequência dentro de um determinado contexto no projeto de software. Um padrão de projeto não é um projeto finalizado que pode ser diretamente transformado em código fonte ou de máquina, ele é uma descrição ou modelo (template) de como resolver um problema que pode ser usado em muitas situações diferentes. Padrões são melhores práticas formalizadas que o programador pode usar para resolver problemas comuns quando projetar uma aplicação ou sistema.
O que define um padrão de projeto?
– seu nome;
– o problema;
– a solução;
– suas consequências.
Exemplo:
Nome do padrão: Singleton;
Problema: Uma classe precisa ter uma única instância;
Solução: Garante que uma classe terá somente uma única instância;
Consequências: Fácil acesso e gerência de recursos compartilhados, como variáveis globais.
Padrões GoF (Gang of Four):
Padrões de criação
Abstract Factory, Builder, Factory Method, Prototype, Singleton
Padrões estruturais
Adapter, Bridge, Composite, Decorator, Façade (ou Facade), Flyweight, Proxy
Padrões comportamentais
Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, Visitor
Padrões GRASP:
Os padrões GRASP, sigla para General Responsibility Assignment Software Patterns (or Principles), consistem de um conjunto de práticas para atribuição de responsabilidades a classes e objetos em projetos orientados a objeto.
Nome dos padrões utilizados
Controlador (Controller),
Criador (Creator),
Indireção (Indirection),
Especialista na informação (Information expert),
Alta coesão (High Cohesion),
Baixo acoplamento (Loose coupling),
Polimorfismo (Polymorphism),
Variações protegidas (Protected variations), e
Invenção pura (Pure fabrication).
Todos esses padrões servem para a resolução de problemas comuns e bastante típicos de
desenvolvimento de software orientado a objeto. Portanto, tais técnicas apenas documentam e
normatizam as práticas já consolidadas, testadas e conhecidas no mercado.
Conclusão sobre Padrões de Projetos (Design Patterns):
– Visam facilitar a reutilização de soluções de desenho – isto é, soluções na fase de projeto do software
– Estabelecem um vocabulário comum de desenho, facilitando comunicação, documentação e aprendizado dos sistemas de software.