Resumo: Automated refactoring to the Null Object design pattern
Por: Luiz Carlos Júnior • 29/1/2016 • Relatório de pesquisa • 488 Palavras (2 Páginas) • 520 Visualizações
Automated refactoring to the Null Object design pattern
Especialização em Desenvolvimento de Sistemas com Tecnologia Java - 2014/2015
UFJF - Universidade Federal de Juiz de Fora
Aluno: Luiz Carlos da Silveira Júnior
Periódico: Information and Software Technology - Estrato Qualis: A2
Contextualização do problema tratado no artigo
Padrões de projeto (design patterns) são soluções simples para problemas específicos no projeto de software orientado a objetos. O artigo em questão apresenta o padrão de projeto Null Object, à qual permite substituir condições que verificam se determinado objeto é nulo por métodos polimórficos que estão vinculados, em tempo de execução, com objetos reais ou nulos. Desta forma, contribui para melhoria da complexidade ciclomática do código refatorado. Segundo o autor, Gaitani et al. (2014), Null Object esconde a ausência de um objeto nulo por um objeto alternativo que por sua vez tem a mesma interface de um objeto real, mas que fornece um comportamento padrão, ou seja, o método não faz nada ou retorna um valor padrão.
Null Object aumenta a capacidade de reutilização do código e desta forma programadores não precisam se preocupar em introduzir condições para objetos nulos. Contribui também para segurança, permitindo um maior controle de exceções, afim de evitar o encerramento do programa por uma exceção indesejada.
Objetivo do trabalho
O artigo tem como proposta a refatoração automatizada do código para o padrão de projeto Null Object, uma vez que condições para objetos nulos são comuns em projetos de software orientado a objetos. Tem por objetivos específicos, descrever o padrão Null Object e suas alternativas de implementação, apresentar em detalhes um exemplo com o antes e depois do código refatorado.
Método empregado no mesmo
Para tornar a refatoração automatizada, os autores desenvolveram um algoritmo que foi adaptado ao plugin jDeodorant do Eclipse IDE permitindo detectar possível pontos de refatoração em projetos orientado a objetos. O algoritmo foi aplicado a partir de um exemplo sob o contexto de carrinho de compras com três condições (ifs) comuns. Neste cenário, com a detecção dos pontos de refatoração o padrão Null Object foi aplicado. Considerando o sucesso do método empregado, os autores partiram para a análise e refatoração de projetos open sources em Java.
Problemas em aberto
O autor Gaitani et al. (2014), afirma que a implementação frequente do padrão de projeto Null Object pode ser considerado um sinal de má concepção do código, uma vez que inclui redundância de classes e possivelmente torna o código complexo e de difícil manutenção. Outra consideração é a refatoração manual para Null Object, nestas circunstâncias, pode causar erros de compilação ou erros durante a execução do código. Porém, a refatoração manual permite ao programador uma avaliação criteriosa da condição a ser alterada e também refatorar o código de forma adequada conforme o contexto.
...