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++:
⚠️ **GitHub.com Fallback** ⚠️