1
resposta

Acessar os atributos privados do parâmetro de um método é considerado má prática?

Aprendemos que não devemos acessar propriedades privadas de uma classe de fora dela, porém neste caso onde sabemos que o argumento passado para o método "equals" da classe "Negociacao" será uma instância da própria classe, podemos acessar as propriedades privadas dessa instância diretamente?

Exemplo do exercício:

class Negociacao {
    equals(outraNegociacao) {
        return (this._data.getTime() === outraNegociacao.data.getTime()) &&
            (this._valor === outraNegociacao.valor) &&
            (this._quantidade === outraNegociacao.quantidade);
    }
}

Acessando diretamente os atributos de "outraNegociacao", visto que é uma instância da própria classe "Negociacao":

class Negociacao {
    equals(outraNegociacao) {
        return (this._data.getTime() === outraNegociacao._data.getTime()) &&
            (this._valor === outraNegociacao._valor) &&
            (this._quantidade === outraNegociacao._quantidade);
    }
}

Isto é considerado má prática?

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta

Fala ai Aylon, tudo bem? Sim, você acessar esses atributos privados da outraNegociacao é uma má prática e está ferindo a questão de escopo da classe.

O ideal seria você ter um get ou uma função para retornar os dados de cada negociação.

Um toString por exemplo, dai você compara as duas negociações vi toString.

Espero ter ajudado.