Je me demandais s'il est possible de modifier les données dans une instance d'une classe, de sorte que cela entraînera le changement des données dans la deuxième classe de l'approche de l'OOP?
Ce que je veux dire est p> ou juste toute solution de partage de données entre les classes dans l'OOP? P> P>
3 Réponses :
mise à jour
Je pense avoir trouvé une solution au problème
Il est possible de résoudre celui-ci en ajoutant la possibilité de spécifier manuellement l'objet à utiliser pour le stockage de ses membres.
Dans cet exemple p> premier code> et secondes code> sont liés Stockage et troisième code> et quatrième code> ont un stockage lié, différent de celui utilisé pour premier code> et second p>. p>. class Data {
constructor(storage) {
this.storage = storage;
this.storage.data = 5
}
}
class First extends Data {
constructor(storage) { super(storage) }
changeData(_data) { this.storage.data = _data }
}
class Second extends Data {
constructor(storage) { super(storage) }
changeData(_data) { this.storage.data = _data }
}
storage = {};
const first = new First(storage)
const second = new Second(storage)
storageB = {};
const third = new First(storageB)
const fourth = new Second(storageB)
first.changeData(7)
third.changeData(21)
console.log(first.storage.data) // 7
console.log(second.storage.data) // 7
console.log(third.storage.data) // 21
console.log(fourth.storage.data) // 21
Si vous utilisez des classes, consultez le drapeau statique (partage de la mémoire dans les instances), si vous êtes fonctionnel, tracez la portée p>
Vous devrez passer la même référence aux deux
Comment voudriez-vous lier
premier code> etsecond code>? On dirait que cela devait être fait d'une manière ou d'une autre, ou ce qui se passe lorsque vous créez une autre paire deNouveau premier () code> etnouveau deuxième () code>? (Peut-être que vous pourriez expliquer le problème du monde réel derrière cela aussi.)