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

Artigo no estilo: Curso

De que se trata o artigo:

Aborda o tema refatoração para padrões com o objetivo de mostrar como o desenvolvedor pode usá-lo para melhorar o código-fonte de suas aplicações.


Para que serve:

Para prover conhecimento ao desenvolvedor sobre refatoração para padrões e demonstrar através de um exemplo prático a aplicação das técnicas de refatoração para padrões Introduzir Criação Polimórfica com Factory Method e Encapsular Composite com Builder.

Em que situação o tema é útil:

O tema se torna fundamental para desenvolvedores que já estão familiarizados com padrões de projeto e já os implementam em seus softwares e que querem saber mais sobre refatoração para padrões, conhecendo os benefícios que sua utilização traz.

Autores: Jacimar Fernandes Tavares e Marco Antônio Pereira Araújo

Seguindo a série de artigos sobre refatoração para padrões, serão apresentadas neste artigo mais duas técnicas de refatoração para padrões, que são:

· Introduzir Criação Polimórfica com Factory Method, técnica voltada para a implementação do padrão de projeto Factory Method, e;

· Encapsular Composite com Builder, técnica voltada para a implementação do padrão de projeto Builder.

Para uma melhor compreensão do processo de aplicação destas técnicas é necessário o conhecimento sobre algumas refatorações que são parte fundamental deste processo. Portanto serão apresentadas as refatorações Extrair Método (ler Nota 1), Extrair Superclasse, Criar um Método Padrão e Subir Método na Hierarquia. Além das técnicas de refatoração, primeiramente serão apresentados os padrões de projeto que as técnicas de refatoração para padrões Introduzir Criação Polimórfica com Factory Method e Encapsular Composite evidenciam, que são Factory Method e Builder.

Nota 1. Refatoração Extrair Método

A técnica de refatoração Extrair Método foi apresentada no artigo da edição 29 da Engenharia de Software Magazine.

O quadro da Figura 1 mostra a relação entre as técnicas de refatoração para padrões e os padrões de projeto que elas contemplam, bem como as técnicas de refatorações que são necessárias no processo de refatorar para tais padrões.

Figura 1. Relação das técnicas de refatoração para padrões com os padrões de projeto e técnicas de refatoração

O padrão de projeto Factory Method

O desenvolvimento de aplicações orientadas a objetos conta com uma série de recursos que podem facilitar a vida do desenvolvedor no processo de desenvolvimento de uma aplicação. O polimorfismo é um exemplo disso. Frameworks, por sua vez podem usufruir deste recurso para que suas classes se tornem mais extensíveis. Neste sentido, pode-se criar uma estrutura hierárquica onde o trabalho de implementar um método seja delegado às subclasses, ficando a superclasse com o método abstrato que será sobrescrito por uma das classes filhas, dependendo da necessidade do projeto naquele momento.

A implementação do padrão de projeto Factory Method traz como consequência um projeto de código mais simples, evitando a duplicação, pois é uma alternativa ao uso de métodos de criação responsáveis pela instanciação de objetos customizados.

O padrão de projeto Builder

Devido ao nível de complexidade apresentada em algumas classes no que diz respeito a como construir seus objetos, o padrão de projeto Builder visa permitir a criação de estruturas que separam os métodos de criação de objetos (neste contexto, métodos diferentes para cada tipo de objeto instanciado) da forma como a classe é representada, através de seus atributos.

Com esta prática, torna-se mais fácil construir objetos diferentes, dependendo das informações que se está trabalhando. Um Builder fornece uma solução para melhorar a forma como objetos diferentes são construídos em diferentes situações.

O padrão de projeto Composite

Em aplicações orientadas a objetos, é possível instanciar objetos de diversas formas. Uma delas é criando objetos que, para sua instanciação são necessárias informações contidas, algumas das vezes, em outros objetos.

Alguns desenvolvedores costumam delegar esta tarefa de instanciação de objetos compostos aos clientes da aplicação, mas esta prática faz com que a complexidade do código cliente aumente.

A definição do padrão Composite facilita este trabalho, uma vez que fornece uma solução para a criação de uma estrutura hierárquica que permita a instanciação de objetos compostos, fazendo com que este processo fique oculto ao cliente da aplicação. Com isso, tem-se um código cliente mais simples, e um projeto de código mais bem definido, pois o trabalho de instanciação de objetos compostos fica com a hierarquia de classes e não ao código cliente da aplicação.

Apesar da técnica de refatoração para padrões Encapsular Composite com Builder não propor a implementação do padrão de projeto Composite, é interessante que o desenvolvedor esteja ciente da sua finalidade para uma melhor compreensão da utilização da técnica de refatoração para padrões em questão no que diz respeito a como ela encapsula composites.

A partir deste momento, serão apresentadas as técnicas de refatoração que são parte importante do processo de refatorar para padrões utilizando as técnicas de refatoração para padrões que este artigo abordará.

...
Quer ler esse conteúdo completo? Tenha acesso completo