Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Assessores vs Getters e Setters

Não ficou claro pra mim quando devo utilizar Assessores ou quando devo utilizar os métodos Getters and Setters. Em que momento um é mais ideal que o outro?

Exemplo com assessor:

set cliente(novoValor) {
    if(novoValor instanceof Cliente) {
    this._cliente = novoValor
    }
}

Exemplo com setter:

setCliente(novoValor) {
    if(novoValor instanceof Cliente) {
    this._cliente = novoValor
    }
}

Por um acaso a diferença está somente na forma de atribuir o valor?

Com assessor:

// ... código omitido
conta.cliente = cliente

Com setter:

// ... código omitido
conta.setCliente(cliente)
5 respostas

opa! Tudo bom? Get e Set são os acessores, um você utiliza para pegar e outro para setar o valor de um determinado atributo privado da classe. acho que é isso, hehehe

Tudo bom Julio, e você? :)

De fato você está certo: um seta e o outro pega o valor. Porém, dá para obter o mesmo resultado utilizando métodos getters e setters, como você pode verificar no exemplo acima onde eu utilizei o setter setCliente()

solução!

Tiago,

Você vai obter os mesmo resultado com os dois métodos.

Também é possível utilizar o Object.defineProperty() para definir uma nova propriedade diretamente em um objeto ou modificar uma propriedade já existente.

Obrigado, Douglas. Acredito então que a diferença esteja somente na forma da atribuição:

// usando assessores
conta.cliente = cliente

// usando método setter
conta.setCliente(cliente)

opa! Fala Tiago! Tudo certinho aqui também :D

Então, exato, existem vários caminhos para o mesmo resultado, porém creio que o método get e set poder algo como uma padronização dentro do próprio código, mas se você inicia o código com um padrão é bom continuar utilizando o mesmo padrão, senão vira uma salada de frutas hehehe.