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

De que se trata o artigo

Este artigo procura abordar a utilização de padrões de projeto (design patterns) em soluções de software, demonstrando para isto como os patterns Factory Method e Template Method podem ser empregados na elaboração de sistemas com uma arquitetura flexível e bem definida.


Em que situação o tema é útil

Design patterns são técnicas pré-definidas e empregadas na resolução de problemas em atividades que envolvam a construção de softwares. O pattern Factory Method é uma alternativa que pode ser empregada na geração de novas instâncias de tipos que contam com uma estrutura em comum, sem contudo obrigar as classes consumidoras a implementarem as condições que levam à obtenção dos objetos esperados. Já o padrão Template Method é uma opção para situações que envolvam variações dentro de um algoritmo de processamento, nos quais determinadas etapas podem apresentar comportamentos próprios decorrentes de algum tipo de necessidade específica.

Design Patterns - Utilizando os padrões Factory Method e Template Method

É extremamente comum, no decorrer de uma série de projetos, a repetição de determinadas atividades que requerem um tipo de tratamento particular. Em diversos casos é possível que outros profissionais já tenham se deparado com situações semelhantes e, a partir disso, disponibilizado meios que buscam resolver estas questões. Tais soluções são conhecidas como design patterns (padrões de projetos), focando normalmente na resolução de problemas específicos e recorrentes dentro do desenvolvimento de software. O pattern Factory Method é uma alternativa que pode ser empregada para a instanciação de objetos de diferentes tipos, mas que contam com uma estrutura comum. Já o padrão Template Method permite o controle de comportamentos variáveis dentro do algoritmo que corresponde às ações desencadeadas por um método, fazendo uso para isto de subclasses que estendem tipos abstratos.

É um fato dado como certo que mudanças acontecerão ao longo do ciclo de vida de uma aplicação de software. Alterações em atendimento a uma nova necessidade da organização ou mesmo a evolução de recursos pré-existentes são aspectos com os quais os profissionais elencados em projetos de sistemas sempre irão se deparar. Novas soluções de software também são criadas a todo o momento, como um reflexo das constantes mudanças a que estão sujeitas muitas companhias.

Design patterns não são conceitos que se encontram ligados a uma tecnologia específica. Como estão voltados à solução de problemas recorrentes em projetos de software, representando soluções concisas e que priorizam a obtenção de código bem estruturado, muitos padrões podem ser aplicados a aplicações concebidas nas mais diferentes linguagens de programação (Delphi, C#, VB.NET, Java, C++ etc.).

Considerando a ampla diversidade de tipos de aplicações de software existentes atualmente, não é difícil de imaginar que tenham sido desenvolvidos patterns para os mais diversos contextos. Os esforços para a definição de padrões iniciaram-se na área de software ainda nos anos 90 com a publicação de 23 padrões conhecidos como GoF.

Nota do DevMan

GoF é a sigla em inglês para “Gang of Four”, sendo um apelido dado ao trabalho conjunto de 4 autores (Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides), os quais documentaram 23 padrões no famoso livro “Design Patterns: Elements of Reusable Object-Oriented Software”. Tais patterns foram especificados na época tomando-se como base exemplos elaborados em C++ e SmallTalk; no entanto, a ampla abrangência destes padrões possibilitou que os mesmos sejam utilizados ainda hoje, auxiliando desenvolvedores Delphi, .NET e Java na resolução de uma série de problemas recorrentes em suas atividades cotidianas.

Objetivos do uso de padrões

A utilização de patterns em um projeto de software tem por principais objetivos:

• Evitar que se obtenham extensas construções de código durante a construção de uma solução;

• Possibilitar que o código obtido seja de fácil compreensão por parte de desenvolvedores que venham a trabalhar com o mesmo;

• Uma maior flexibilidade para se alterar uma aplicação quando da necessidade de se efetuarem mudanças em atendimento a requisitos de negócio;

• Divisão equilibrada de responsabilidades entre as diferentes partes que compõem um projeto;

• O reuso de componentes de software, não ficando isto restrito a uma única aplicação, mas com o reaproveitamento de funcionalidades em mais de uma solução;

• Redução eficiente da duplicação de código através de técnicas de fatoração do código, reduzindo-os a unidades pequenas e coesas.

Benefícios da aplicação de design patterns

São vantagens do uso de padrões de projetos na construção de aplicações:

• Uma maior padronização em atividades relacionadas à codificação de funcionalidades;

• A possibilidade de reuso de uma mesma arquitetura em diversos projetos;

• Uma maior coesão nos diferentes componentes de uma solução, com cada classe acumulando apenas funções relacionadas ao propósito para o qual a mesma foi criada inicialmente;

• Maior facilidade na manutenção de uma aplicação, com menores impactos quando da necessidade de se modificar algo, considerando para isto um baixo acoplamento entre os diversos componentes que constituam a solução;

• A redução de custos em novos projetos, a partir do reaproveitamento de componentes e funcionalidades já elaborados anteriormente;

...

Quer ler esse conteúdo completo? Tenha acesso completo