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:
  1. 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.
  2. Use o Factory Method quando desejar fornecer aos usuários da sua biblioteca ou framework uma maneira de estender seus componentes internos.
  3. 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:
  1. 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.

Quando usar:
  1. Use o padrão Builder para se livrar de um “construtor telescópico”.
  2. 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).
  3. 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.

Quando usar:
  1. Utilize o padrão Prototype quando seu código não deve depender de classes concretas de objetos que você precisa copiar.
  2. 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.


Quando usar:
  1. 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.
  2. 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

Postagens mais visitadas deste blog

Sistema de mensageria Apache Kafka