1
resposta

[Dúvida] Métodos Acessores da POO

No modelo de MVP com ORM, onde ficariam os métodos acessores, construtores e demais itens para encapsular atributos da Classe?

1 resposta

Olá Felipe, tudo bem?

Peço desculpa pela demora para responder o seu tópico.

Os métodos acessores, construtores e demais itens para encapsular atributos da Classe devem ser definidos na própria classe do modelo, dentro da pasta "models" do seu projeto.

No Sequelize, por exemplo, é possível definir os métodos acessores usando o método "define" da classe Model. Já os construtores podem ser definidos usando o método "init" da mesma classe.

Veja um exemplo de como definir um método acessor "fullName" para um modelo "User":

const { Model, DataTypes } = require('sequelize');
const sequelize = require('../database');

class User extends Model {
  get fullName() {
    return `${this.firstName} ${this.lastName}`;
  }
}

User.init({
  firstName: DataTypes.STRING,
  lastName: DataTypes.STRING
}, {
  sequelize,
  modelName: 'user'
});

module.exports = User;

Dessa forma, sempre que você acessar a propriedade "fullName" de um objeto "User", o método "get fullName" será chamado e retornará o nome completo do usuário.

Espero ter ajudado. Caso tenha mais alguma pergunta ou dúvida, estarei à disposição.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.