No modelo de MVP com ORM, onde ficariam os métodos acessores, construtores e demais itens para encapsular atributos da Classe?
No modelo de MVP com ORM, onde ficariam os métodos acessores, construtores e demais itens para encapsular atributos da Classe?
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!