Este é um post disponível para assinantes MVPEste post também está disponível para assinantes da Engenharia de Software Magazine
ou para quem possui Créditos DevMedia. Clique aqui para saber mais!
ou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Refatoração para Padrões – Parte 11 - Artigo Revista Engenharia de Software Magazine 38
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.
Engenharia de Software Magazine 38
[Artigo disponível no Leitor Digital DevMedia. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da Engenharia de Software Magazine 38
[Artigo disponível no Leitor Digital DevMedia. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da Engenharia de Software Magazine 38
Melhorar o projeto de código existente é um dos objetivos das técnicas de refatoração para padrões. Sabe-se também que melhorar o projeto existente não implica apenas em implementar padrões de projeto e tornar o código reutilizável. Aumentar a segurança de tal código também é contribuir para uma melhoria do projeto de código existente. Não ter a segurança de que um dado de um tipo específico foi ou não modificado pode ser um problema quando se precisa ter certeza de que o dado não foi alterado antes de ser requisitado.
Melhorar o projeto de código existente também está relacionado à necessidade de melhorar o desempenho do sistema através de modificações no código. Um exemplo pode ser uma classe com várias instâncias em memória, prejudicando o desempenho. Limitar as instâncias para apenas uma contribui no sentido de liberar memória e aumentar o desempenho.
Em outro cenário, melhorar o projeto de código existente pode estar relacionado à remoção de código duplicado. Centralizar código que verifica se valores nulos foram atribuídos a objetos contribui para a redução de código que normalmente ficaria espalhado por pontos onde se fazem necessárias tais verificações.
Nesse sentido, o objetivo deste artigo é apresentar a técnica de refatoração para padrões Substituir Código de Tipo por Classe como alternativa para uma melhoria do projeto de código existente em relação a tipos, além das técnicas de refatoração para padrões Limitar Instanciação com Singleton, que tem como objetivo implementar o padrão de projeto Singleton, e Introduzir Objeto Nulo, responsável pela implementação do padrão de projeto Objeto Nulo. As técnicas de refatoração para padrões citadas implicam na necessidade de aprendizagem das técnicas de refatoração Extrair Classe, Extrair Subclasse e Encapsular Atributo (ver Nota 1) e também das teorias referentes aos padrões de projeto Objeto Nulo, que será apresentado, e Singleton, já abordado em artigos anteriores.
Nota 1. Refatorações apresentadas em outros artigos
As técnicas de refatoração Extrair Classe e Extrair Subclasse já foram apresentadas em outras edições da Engenharia de Software Magazine.
Refatoração Encapsular Atributo
Esta refatoração é pertencente ao grupo de refatorações classificadas como Organizando Dados.
Nome da refatoração: O nome original da refatoração é Encapsular Campo, mas é citada nas técnicas de refatoração para padrões como Encapsular Atributo.
Resumo: Campos públicos devem ter seus moderadores alterados para privados e métodos de acesso (gets e sets) devem ser criados para possibilitar o acesso a esses campos.
Motivação: Usa-se esta refatoração para permitir que campos (ou atributos) de uma classe passem a ter métodos de acesso, permitindo assim que o encapsulamento dos dados seja mantido, o que é um dos princípios da orientação a objetos.
Mecânica: Os passos que serão descritos podem sofrer variações em algumas linguagens, portanto serão mostrados os passos referentes às linguagens C# e Java.
Crie métodos get e set para os atributos que não possuem.
Busque pelo código fonte referências a esses atributos e modifique-os para que, a partir desse momento, passem a referenciar os métodos de acesso, e não mais os atributos. Em Java, deve-se verificar se o método a ser usado é o get (onde há referencias ao valor do atributo) ou o set (onde se altera o valor do atributo).
Execute os testes e certifique-se que tudo está correto, e então altere os modificadores de acesso dos atributos para private.
Padrão de projeto Objeto Nulo
Nome do padrão de projeto: Objeto Nulo. Pertencente ao conjunto dos padrões de projeto classificados como Padrões Estruturais.
O problema: Em algumas aplicações é comum ver a escrita de código com lógica condicional a fim de verificar se uma variável não é nula para então uma tarefa ser executada. Esse tipo de verificação em alguns momentos é muito útil, pois evita que operações sejam realizadas com nulos.
O padrão de projeto Objeto Nulo permite a criação de um objeto que é utilizado para substituir a lógica de verificação de nulos.
As consequências: O uso desse padrão de projeto evita a duplicação de código para verificação de nulos na aplicação, tornando o código mais simples e manutenível.
A partir deste momento, visto as teorias que envolvem o processo de refatorar para padrões deste artigo, serão apresentadas as técnicas Substituir código de Tipo por Classe, Limitar Instanciação com Singleton e Introduzir Objeto Nulo.
Refatoração para padrões Substituir Código de Tipo por Classe
Resumo: Atributos de tipos primitivos podem ser inseguros quando se atribui algum valor a eles. Trocam-se os tipos primitivos por instâncias de uma classe.
"A exibição deste artigo foi interrompida.
Este é um post disponível para assinantes MVPEste post também está disponível para assinantes da Engenharia de Software Magazine
ou para quem possui Créditos DevMedia. Clique aqui para saber mais!
ou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Jacimar Fernandes Tavares
Pós Graduando em Gestão de Projetos de TI – Universidade Federal de Juiz de Fora UFJF. Bacharel em Ciência da Computação FAGOC - Faculdade Governador Ozanam Coelho, atua como administrador financeiro na empresa Transporte JR.
O que você achou deste post?
Cursos relacionados




