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?

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.