Design Patterns
Padrões de projeto (Design Patterns) são soluções típicas para problemas comuns em projeto de software. Eles são como plantas de obra pré fabricadas que você pode customizar para resolver um problema de projeto recorrente em seu código.
Criational Patterns
Padrões de criação, fornecem mecanismos de criação de objetos que aumentam a flexibilidade e a reutilização de código. A forma básica de criação de objeto pode resultar em problemas de design ou em complexidade adicional. Esse grupo sustenta o principal princípio de orientação a objetos: "Programar em função de interfaces e não em função de implementações".
- Factory Method
Fornece uma interface para criar objetos em uma superclasse, mas permite que as subclasses alterem o tipo de objetos que serão criados.
Quando usar:
- Use o Factory Method quando não souber de antemão os tipos e dependências exatas dos objetos com os quais seu código deve funcionar.
- Use o Factory Method quando desejar fornecer aos usuários da sua biblioteca ou framework uma maneira de estender seus componentes internos.
- Use o Factory Method quando deseja economizar recursos do sistema reutilizando objetos existentes em vez de recriá-los sempre.
- Abstract Factory
Permite que você produza famílias de objetos relacionados sem ter que especificar suas classes concretas.
Quando usar:
- Use o Abstract Factory quando seu código precisa trabalhar com diversas famílias de produtos relacionados, mas que você não quer depender de classes concretas daqueles produtos, eles podem ser desconhecidos de antemão ou você simplesmente quer permitir uma futura escalabilidade.
- Builder
Permite a você construir objetos complexos passo a passo. O padrão permite que você produza diferentes tipos e representações de um objeto usando o mesmo código de construção.
- Use o padrão Builder para se livrar de um “construtor telescópico”.
- Use o padrão Builder quando você quer que seu código seja capaz de criar diferentes representações do mesmo produto (por exemplo, casas de pedra e madeira).
- Use o Builder para construir árvores Composite ou outros objetos complexos.
- Prototype
Permite copiar objetos existentes sem fazer seu código ficar dependente de suas classes. Também é conhecido como protótipo e clone.
- Utilize o padrão Prototype quando seu código não deve depender de classes concretas de objetos que você precisa copiar.
- Utilize o padrão quando você precisa reduzir o número de subclasses que somente diferem na forma que inicializam seus respectivos objetos. Alguém pode ter criado essas subclasses para ser capaz de criar objetos com uma configuração específica.
- Singleton
Permite a você garantir que uma classe tenha apenas uma instância, enquanto provê um ponto de acesso global para essa instância.
- Utilize o padrão Singleton quando uma classe em seu programa deve ter apenas uma instância disponível para todos seus clientes; por exemplo, um objeto de base de dados único compartilhado por diferentes partes do programa.
- Utilize o padrão Singleton quando você precisa de um controle mais estrito sobre as variáveis globais.
Structional Patterns
Padrões estruturais, tratam a relação entre objetos e como eles interagem entre si para formar estruturas maiores, enquanto ainda mantém as estruturas flexíveis e eficientes.
Behavioral Patterns
Padrões comportamentais, que tratam a comunicação entre os objetos, principalmente em termos de responsabilidades e algorítimos.





Comentários
Postar um comentário