Refatoração para Padrões – Parte 1
Refatoração para Padrões – Parte 2
Refatoração para Padrões – Parte 3
Refatoração para Padrões – Parte 4
Refatoração para Padrões – Parte 5
Refatoração para Padrões – Parte 6
Refatoração para Padrões – Parte 7
Refatoração para Padrões – Parte 8
Refatoração para Padrões – Parte 9
Refatoração para Padrões – Parte 10
Refatoração para Padrões – Parte 11
Refatoração para Padrões – Parte 13
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. Neste sentido, este artigo traz conhecimento ao desenvolvedor sobre refatoração para padrões e demonstrar através de exemplos práticos a aplicação das técnicas de refatoração para padrões Mover Acumulação para Parâmetro Coletor e Mover Acumulação para Visitor.
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.
Resumo DevMan
O objetivo deste artigo é implementar os padrões de projeto Parâmetro Coletor e Visitor. Para que os objetivos deste artigo possam ser alcançados, é necessário o conhecimento das técnicas de refatoração Extrair Método, Substituir Método por Método Objeto, Extrair Método, Mover Método, Internalizar Método, Extrair Interface.
Autores: Jacimar Fernandes Tavares e Marco Antônio Pereira Araújo
Imagine um cenário onde exista um trecho de código fonte com uma variável ou atributo declarado e que sua utilização é tão frequente que diversos métodos os manipulam devido à sua importância para a aplicação. Do ponto de vista operacional tal prática é lícita, mas sua utilização deve levar em conta outros fatores, como: a utilização da variável ou atributo em questão por diversos métodos não aumenta o acoplamento de uma forma que prejudique futuras manutenções? O risco de ter uma informação sendo alterada por diversos pontos do código não poderá ocasionar problemas relacionados à consistência da informação solicitada, como por exemplo, alteração dos valores da variável ou atributo indevidamente? Se estas questões fazem sentido no contexto do código fonte que se está analisando, talvez seja interessante utilizar um mecanismo que permita criar um parâmetro coletor de informações, que serão manipuladas de forma segura.
Outro cenário leva a outra questão importante: é possível criar um mecanismo que recolha informações, como no primeiro cenário apresentado, mas sem a necessidade de modificar o código fonte das classes? Um mecanismo capaz de coletar informações em classes para realizar uma tarefa desejada pode ser importante. A refatoração para padrões Mover Acumulação para Visitor é útil neste sentido.
O objetivo deste artigo é justamente atuar nos cenários descritos, entre outros, e implementar os padrões de projeto Parâmetro Coletor e Visitor. Para que os objetivos deste artigo possam ser alcançados, é necessário o conhecimento das técnicas de refatoração Extrair Método, Substituir Método por Método Objeto, Extrair Método, Mover Método, Internalizar Método, Extrair Interface (ver Nota 1). Também é apresentada uma breve descrição sobre os padrões de projetos que envolvem este artigo, Parâmetro Coletor e Visitor.
As técnicas de refatoração Extrair Método, Mover Método, Internalizar Método e Extrair Interface já foram apresentadas em edições anteriores da Engenharia de Software Magazine.
Esta técnica é pertencente ao grupo de refatorações classificadas como Compondo Métodos.
Nome da refatoração: Substituir Método por Objeto Método
Resumo: Métodos longos demais precisam ser divididos com a refatoração Extrair Método, mas se ele tiver muitas variáveis locais, o grau de dificuldade aumenta. Nesse contexto, Cria-se um objeto cujos atributos equivalem a essas variáveis.
Motivação: Prepara os métodos longos para serem divididos com a refatoração Extrair Método ao diminuir a complexidade deles.
Mecânica:
§ Cria-se uma classe cujo nome deve ser o mesmo do método longo.
...Confira outros conteúdos:
Perguntas frequentes
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.