bonjour, je ss entrain d'implémenter la communication entre deux agents (dans le cadre de mon PFE : developpement d'une plateforme multi-agents). Essentiel, j'essaie de voir et de comprendre le code sources des plateforme open source déjà existées; quand j'ai essayé de comprendre le code source d'une plateforme Madkit, et j'ai trouvé ceci :
public class Message {....}
public class ActMessage extends Message {...}
public class AclMessage extends ActMessage{...}
et il ya deux méthodes : send (AgentAdress a, Message m)
Message receive(); dans la classe Agent
pour le moment tout est clair.
Mais en voyant l'exemple d'utilisation ci dessous j'ai trouvé un peu d'ambiguité :
AclMessage msg = new AclMessage(...);
send (agent, msg);// comment (pourquoi) la méthode accepte ce type ?!!!!
AclMessage msg1 = (AclMessage) receive();// ecq les données envoyées seeront les mêmes reçues?!!!!!!
de plus mon idée était d'utiliser la généricité, par exemple dans send à la place de "Message m" j'ai voulu faire "? extends Message : n'importe classe qui extends de la classe Message")
enfin j'ai rendu compte qu'il faut bien comprendre ces trois mécanismes (héritage, cast et généricité). Comment ça se passe en réalité?
de plus est ce quelqu'un peut me dire la différence entre l'idée citée en Madkit et mon idée, qui est la meilleur?
merci
Partager