teste-e-qualidade-de-software icon indicating copy to clipboard operation
teste-e-qualidade-de-software copied to clipboard

Refatorar Usando Null Objet Pattern (Active Nothing)

Open elissonmichael opened this issue 6 years ago • 0 comments

Null Object Pattern

Melhore a qualidade do código da classe Fornecedor livrando-se das condicionais.

Introdução

Nesse sistema, o contato na classe Fornecedor é opcional. Por isso, em algumas situações um fornecedor é registrado apenas com o local. Diante dessa situação, precisamos estar sempre verificando se existe um contato antes de chamar seus métodos.

Obs.: Você pode usar o Null Object Pattern, também conhecido como Active Nothing, para resolver esse tipo de situação.

Exemplo Considere que você tenha os seguintes objetos:

  • local = Local(nome: 'Rua de Qualquer Lugar')
  • contato = Contato(nome: 'Fulano', telefone: '99998888', email: '[email protected]')
  • fornecedor = Fornecedor(local: local, contato: contato)
Método Retorno
fornecedor.nome_do_contato 'Fulano'
fornecedor.telefone_do_contato '99998888'
fornecedor.email_do_contato '[email protected]'

Exemplo Considere que você tenha criado um fornecedor sem contato agora:

  • fornecedor = Fornecedor(local: local)
Método Retorno
fornecedor.nome_do_contato 'Nenhum Nome'
fornecedor.telefone_do_contato 'Nenhum Telefone'
fornecedor.email_do_contato 'Nenhum Email'

elissonmichael avatar Jul 16 '18 15:07 elissonmichael