Sobes.tech
Junior

Como você entende o significado de encapsulamento na programação?

sobes.tech IA

Resposta da IA

A encapsulação é um mecanismo que permite ocultar a implementação interna de um objeto e fornecer acesso aos seus dados e comportamentos apenas através de uma interface definida.

Princípios básicos da encapsulação:

  • Ocultação de dados: O acesso direto ao estado interno do objeto é restrito. Os dados só podem ser acessados através dos métodos do objeto.
  • Provisão de interface: A interação com o objeto ocorre através de um conjunto de métodos públicos que definem como o objeto pode ser utilizado sem conhecer a sua estrutura interna.

Vantagens da encapsulação:

  • Modularidade: As partes do sistema tornam-se independentes e podem ser desenvolvidas, testadas e modificadas separadamente.
  • Flexibilidade: A implementação interna do objeto pode ser alterada sem afetar o código que o utiliza, desde que a interface seja mantida.
  • Segurança dos dados: Impede alterações incorretas no estado do objeto a partir do exterior.
  • Simplificação do código: Ao esconder a complexidade da implementação, a encapsulação torna o código mais compreensível e fácil de manter.

Exemplo de encapsulação em JavaScript:

class Counter {
  #count; // Campo privado, acessível apenas dentro da classe

  constructor(initialCount = 0) {
    this.#count = initialCount;
  }

  // Método público para incrementar o contador
  increment() {
    this.#count++;
    console.log('Contador atual:', this.#count);
  }

  // Método público para obter o valor atual do contador
  getCount() {
    return this.#count;
  }
}

const myCounter = new Counter(5);
myCounter.increment(); // Saída: Contador atual: 6
console.log(myCounter.getCount()); // Saída: 6

// Tentar aceder diretamente ao campo privado causará um erro
// console.log(myCounter.#count);