0
votes

Est-il possible de partager des données entre plusieurs classes?

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 xxx

ou juste toute solution de partage de données entre les classes dans l'OOP?


2 commentaires

Vous devrez passer la même référence aux deux


Comment voudriez-vous lier premier et second ? 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 de Nouveau premier () et nouveau deuxième () ? (Peut-être que vous pourriez expliquer le problème du monde réel derrière cela aussi.)


3 Réponses :


0
votes

mise à jour Je pense avoir trouvé une solution au problème xxx


0 commentaires

0
votes

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 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>.

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


0 commentaires

1
votes

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


0 commentaires