Atenção: esse artigo tem um vídeo complementar. Clique e assista!

De que se trata o artigo:

O artigo aborda dois padrões de projeto, Builder e Composite, essenciais para a “caixa de ferramentas” de qualquer desenvolvedor de software, uma vez que é frequente a ocorrência de cenários nos quais a aplicação destes padrões é possível.


Para que serve:

Para o estudo de boas práticas de desenho/projeto de software orientado a objetos e como guia para empregar os padrões abordados.

Em que situação o tema útil:

Como a construção de diferentes representações de objetos passo-a-passo e a ocorrência de estruturas hierárquicas é frequente em vários domínios, o conhecimento de boas práticas a eles relacionadas é importante e auxilia no desenvolvimento de software com maior produtividade e melhor qualidade.

Builder e Composite: padrões para a sua caixa de ferramentas:

Para serem competitivos no cenário atual de desenvolvimento de software, desenvolvedores precisam continuamente aumentar sua produtividade e melhorar a qualidade de seus produtos. Padrões de projeto desempenham um papel de destaque neste contexto, uma vez que podem ser entendidos como uma forma de reuso de soluções para problemas comuns de desenho/projeto de software. Destes problemas, a construção de diferentes representações de objetos passo a passo e a ocorrência de estruturas hierárquicas é frequente em vários domínios. Os padrões de projeto Builder e Composite, abordados no artigo, documentam boas práticas relacionadas a estes problemas e auxiliam na modelagem de soluções flexíveis e eficazes.
Autores: Leandro Luque e Rodrigo Rocha Silva

Em diferentes projetos de software, existem características, oportunidades e problemas semelhantes. Podem ser citados como exemplo: criação e gerenciamento de fontes de recursos, centralização do controle de requisições, portabilidade para diferentes Sistemas Gerenciadores de Bancos de Dados (SGBDs), entre outros.

Essa semelhança possibilita o reaproveitamento de estratégias e soluções, o que é importante frente ao cenário atual de desenvolvimento de software, no qual é necessário maior produtividade e melhor qualidade para ser competitivo.

Padrões de projeto desempenham um papel de destaque neste contexto, uma vez que podem ser entendidos como uma forma de reuso de soluções para problemas comuns de desenho/projeto de software.

Um padrão de projeto geralmente especifica um nome, a descrição de um problema/motivação para seu uso, uma solução para o problema apresentado e as consequências da sua aplicação.

Além de auxiliarem no aumento da produtividade, principalmente por permitirem o reuso de soluções, e no desenvolvimento de projetos com melhor qualidade, por meio do uso de soluções flexíveis, testadas e documentadas, os padrões de projeto definem um vocabulário comum para a discussão dos problemas para os quais propõem soluções.

Apesar de todas essas qualidades, o uso de padrões de projeto deve sempre contar com bom senso. Se forem mal interpretados e empregados, podem diminuir a compreensão do seu projeto e aumentar desnecessariamente a quantidade de código.

Os padrões de projeto ganharam popularidade com o livro Design Patterns: elements of reusable object-oriented software, no qual foram catalogados vinte e três padrões, que foram classificados tanto de acordo com seu propósito (Tabela 1) quanto de acordo com sua intenção (Tabela 2).

Padrões de Projeto: soluções reutilizáveis de software orientado a objetos. O livro foi publicado por Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides, que ficaram conhecidos como “Gangue dos Quatro”, GoF ou Go4 (Gang of Four).

Propósito

Padrões de Projeto

Criação

Factory Method, Abstract Factory, Builder, Prototype e Singleton.

Criação e inicialização de objetos.

Estrutura

Adapter, Bridge, Composite, Decorator, Facade, Flyweight e Proxy.

Composição de classes ou objetos.

Comportamento

Interpreter, Template Method, Chain of Responsibility, Command, Iterator, Mediator, Memento, Observer, State, Strategy e Visitor.

Interação e distribuição de responsabilidades entre classes e objetos.

Tabela 1. Classificação dos 23 padrões de projeto proposta pelos autores do livro Design Patterns.

...

Intenção

Padrões de Projeto

Interfaces

Adapter, Bridge, Composite e Facade.

Oferecer interfaces.

Responsabilidade

Chain of Responsibility, Flyweight, Mediator, Observer, Proxy e Singleton.

Atribuir responsabilidades.

Construção

Abstract Factory, Builder, Factory Method, Memento e Prototype.

Construir classes ou objetos.

Operações

Quer ler esse conteúdo completo? Tenha acesso completo