Каков наилучший способ создания экземпляра класса из сохраняемой структуры данных?
в настоящее время при сохранении I JSON.stringify()
он затем анализирует эту строку при создании экземпляра следующим образом:
module.exports = class Player {
constructor(str, isExistingInstance=false, rsn) {
if(isExistingInstance) {
try {
parsedObject = JSON.parse(str)
this.rsn = parsedObject.rsn
this.skills = parsedObject.skills
this.kc = parsedObject.kc
} catch (err) {
console.log("Error instantiating object from exisiting instance. Expected JSON.stringify'd version of Player, Received: ", str)
}
} else {
if(!rsn) throw new Error("Expected type of string for rsn, received: ", typeof(rsn));
}
}
я не фанат этого метода, потому что вы должны предоставить str
, даже если это не существующий экземпляр.У кого-нибудь есть какие-либо предложения о том, как его можно улучшить?
Моя текущая мысль - это функции "строителя", подобные этой:
function buildNewPlayer(rsn) {
new Player(null, false, rsn);
}
function buildExistingPlayer(str, rsn) {
new Player(str, true, "");
}
Этот метод кажется грязным или грязным, мне кажется,должен быть более чистый способ справиться с повторной реализацией.