ConstructiCat Logo
CodeBust.
Browse section ▾

Mudar Referência para Valor.

Problem

Você tem um objeto de referência pequeno demais e alterado com pouca frequência para justificar o gerenciamento de seu ciclo de vida.

Solution

Transforme-o em um objeto de valor.

##Example

Antes
Customer Currency code: String *1
Depois
Customer Currency code: String 1

##Why Refactor

A inspiração para trocar uma referência por um valor pode vir do incômodo de trabalhar com a referência. Referências exigem gerenciamento da sua parte:

  • Elas sempre exigem solicitar o objeto necessário ao armazenamento.

  • Referências em memória podem ser inconvenientes de manipular.

  • Trabalhar com referências é particularmente difícil, em comparação com valores, em sistemas distribuídos e paralelos.

Valores são especialmente úteis se você prefere ter objetos imutáveis em vez de objetos cujo estado pode mudar ao longo de sua vida útil.

##Benefits

  • Uma propriedade importante dos objetos é que eles devem ser imutáveis. O mesmo resultado deve ser obtido a cada consulta que retorna o valor de um objeto. Se isso for verdade, não surgem problemas quando há muitos objetos representando a mesma coisa.

  • Valores são muito mais fáceis de implementar.

##How to Refactor

  1. Torne o objeto imutável. O objeto não deve ter setters nem outros métodos que alterem seu estado e seus dados (Remover Método de Atribuição pode ajudar aqui). O único lugar onde dados devem ser atribuídos aos campos de um objeto de valor é um construtor.

  2. Crie um método de comparação para poder comparar dois valores.

  3. Verifique se você pode excluir o método de fábrica e tornar público o construtor do objeto.