J'ai un objet Word, composé d'objets Agent.
De temps en temps, les agents disparaissent (meurent) : dès ce moment l'objet World n'entretient plus aucune référence sur l'agent disparu.
Mais comme les agents entretiennent des relations entre eux, certains agents peuvent avoir des références sur l'agent disparu. Ainsi, un agent peut 'mourir' pour le monde réel, mais survivre dans la mémoire d'autres agents.
Pour le détruire vraiment, il faut faire le tour de chacun des agents pour l'éliminer chez chacun. D'une part on peut oublier une référence (avec une structure plus complexe que celle donnée en exemple) d'autre part ce n'est pas cohérent dans un framework où l'on cherche à modéliser des agents autonomes : la disparition d''un agent ne doit pas dépendre des autres agents, elle doit s'imposer à eux, comme une évidence externe, au moment où ils chercheront à entrer à nouveau en relation.
Ce qu'il faut donc c'est que seul le monde entretienne une strong reference sur chaque agent, et que les agents entre eux n'entretiennent des relations que par des références indirectes.
J'ai pensé aux weakreference que je n'ai jamais utilisé. Est-ce la solution à mon pb ?
Existe-t-il d'autres outils ?
Partager