Design Patterns - eTecnologia/projeto-genesis GitHub Wiki
O que são padrões de projeto (Design Patterns)?
Padrões de projeto são catálogo de soluções típicas e reusáveis para problemas comuns em desenvolvimento de software.
Por que usar padrões de projeto?
- Primeiro para não perder tempo reinventando a roda, muitas vezes, temos problemas no desenvolvimento de software e podemos aplicar padrões para resolve-los.
- Segundo: Software orientada a objeto deve ser bem-estruturado, ser simples e fácil de compreender e possuir qualidade.
Uma das maneiras de medir a qualidade de um software orientado a objetos é avaliar se os desenvolvedores tomaram bastante cuidado com as colaborações comuns entre seus objetos. Aplicar padrões de projetos durante o desenvolvimento de um software pode levar a uma estrutura enxuta, tornar o código mais simples e muito mais compreensível do que aquelas produzidas quando estes padrões são ignorados.
Classificaçao de Padrões de Projeto
Padrões de projeto diferem por sua complexidade, nível de detalhe e grau de aplicabilidade. Além disso, eles podem ser categorizados por seu propósito e divididos em três grupos
Tabela Resumo de Padrões de Projetos:
Padrões Criacionais | Padrões Estruturais | Padrões Comportamentais |
---|---|---|
Estes padrões fornecem vários mecanismos de criação de objetos, que aumentam a flexibilidade e reutilização de código já existente. | Estes padrões explicam como montar objetos e classes em estruturas maiores mas ainda mantendo essas estruturas flexíveis e eficientes | Estes padrões são voltados aos algoritmos e a designação de responsabilidades entre objetos |
Abstract Factory Builder Factory Method Prototype Singleton |
Adapter Bridge Composite Decorator Façade (ou Facade) Flyweight Proxy |
Command Interpreter Iterator Mediator Memento Observer State Strategy Template Method Visitor |
A maioria dos padrões são descritos formalmente para que as pessoas possam reproduzi-los em diferentes contextos, eles possuem a estrutura: Propósito, Motivação, Estruturas e Exemplos
O Propósito do padrão descreve brevemente o problema e a solução. A Motivação explica a fundo o problema e a solução que o padrão torna possível. As Estruturas de classes mostram cada parte do padrão e como se relacionam. Exemplos de código em uma das linguagens de programação populares tornam mais fácil compreender a ideia por trás do padrão.
Existem diversas formas de aprender mais sobre Padrões de Projetos (Design Patterns), mas recomendamos começar pelos livros para conhecer e entender como e quando aplicar os padrões. Em sofware a teoria e prática tem a mesma importância, logo, não esqueça de praticar a implementação dos padrões através de projetos de software.
Livros que recomendamos
No livro Padrões de Projetos os autores Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides - conhecidos como Gangue dos Quatros (Gang of Four, ou GoF), introduzem os princípios de padrões de projetos e fornecem um catálogo dos mesmos. Assim, este livro traz duas importantes contribuições: - Primeiro, mostra o papel que padrões de projetos podem exercer na arquitetura de sistemas complexos. - Segundo, fornece uma referência muito prática para um conjunto de padrões muito bem concebidos que o desenvolvedor atuante pode aplicar na criação de suas próprias aplicações.
Design Patterns pode aplicado a diversas linguagens de programação como PHP, Java, C#, Delphi e C++: