Logotipo do ConstructiCat
CodeBust.
Explorar a seção ▾

Inveja de Recurso.

Um método acessa os dados de outro objeto mais do que os seus próprios dados.

##Sinais e sintomas

Um método acessa os dados de outro objeto mais do que os seus próprios dados.

class InvoicePrinter {
  String line(Order order) {
    return order.customer.name + ": " + order.item.sku + " x" + order.item.qty;
  }
}

##Causas do problema

Esse code smell pode ocorrer após campos serem movidos para uma classe de dados. Se for esse o caso, talvez você queira mover também as operações sobre os dados para essa classe.

##Tratamento

##Benefícios

  • Menos duplicação de código (se o código de manipulação de dados for colocado em um local central).

  • Melhor organização do código (os métodos para manipular os dados ficam próximos dos próprios dados).