Dépendances de projets et problème de conception
Bonsoir à tous,
Me revoila encore avec mes problèmes d'agents et de référence circulaire, surement un problème de conception mais je ne vois pas où ...
Bon j'ai dans mon système des agents :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
class IMPEXP cAgent : public cObjet {
public:
cAgent (std::string Nom);
virtual ~cAgent ();
[...]
protected:
cListObjets *_Methodes;
cMessagerie *_Messagerie;
}; |
J'aimerais pour ces agents leur ajouter des IA : j'ai créé une classe d'interfaçage destinée à gérer les IA de l'agent et à les faire intervenir dans un ordre déterminé (par exemple "lecture des messages dans _Messagerie", "analyse de l'état de l'agent" ...).
Comme ces IA ne sont pas connus à l'avance mais chargés via fichiers XML, j'ai dans l'idée d'une petite Factory ...
Pour l'instant les classes Agent et InterfaceIA sont dans le même projet.
Mon problème vient de la référence circulaire induite par mon projet "Agent" et mes projets "IAs". En effet la factory de création des IA dépend des projets "IAs", mais mes projets IA dépendent également du projet IA pour pouvoir travailler sur les agents (par exemple récupération des messages ou autre).
J'ai surement un problème de conception mais je ne vois pas où ... et je n'ai pas envie de mettre toutes mes classes IA dans le projet "Agents".
Quelqu'un a-t-il une idée ?
Merci d'avance