No modelo de MVP com ORM, onde ficariam os métodos acessores, construtores e demais itens para encapsular atributos da Classe?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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!