S3 : Conception et Programmation Objet Avancées
-
- Attention pensez au rendu de fin de module
This is an old revision of the document!
Objectifs :
Votre défi
Faire passer les tests sans les modifier si ce n'est la référence à la classe “SocialNetwork” qui implémente SocialNetworkInterface et en développant un code propre.
Voici les archives : 1)
Vous n'avez que deux interfaces à implémenter :
SocialNetworkInterface
et MemberInterface
.
Ce qui suit est là pour vous aider. }}
La figure suivante visualise les interfaces et classes fournies pour les tests.
relateToRank(MemberInterface member, int rank)
distance(MemberInterface de, MemberInterface a)
) D'autres méthodes doivent être définies, il suffit de lire l'interface “SocialNetworkInterface”.
Pour vous aider (et c'est aussi obligatoire ) vous utiliserez la classe
GrapheSimple
et la classe ParcoursSimple
pour calculer des chemins 2).
facebookGhost
. Lisez bien toute la suite avant de commencer.addMember(“Hercule”, true)
)Le réseau FG évolue. De nouvelles relations sont régulièrement créées et notre propre réseau peut alors devenir obsolète si les membres impliqués font partie de notre réseau et que nous n'enregistrons pas ces changements de relations. Mais bien sûr, il est impossible de modifier les codes du réseau FG….
Heureusement, le réseau FG est observable. On peut donc demander à être notifié des modifications du réseau FG! Chaque fois qu'une nouvelle relation est ajoutée dans FG on veut vérifier si les “users” mis en relation existent dans notre réseau et si c'est le cas on crée les relations correspondantes dans notre réseau.
Il suffit donc de déclarer notre réseau comme “Observer” du réseau FG et à chaque notification d'ajout d'une relation, de mettre à jour notre propre réseau si c'est nécessaire.
Facultatif : Chaque fois qu'un nouveau user est ajouter dans FG, on veut vérifier s'il existe déjà dans notre réseau et si c'est le cas le “connecter” à notre réseau…
Nous désirons contrôler l'activité de notre réseau. A terme nous envisageons de suivre cette activité selon plusieurs aspects (afficheur sous forme de courbes de création des membres dans le temps; lever d'alertes lorsque le nombre de relations sur un membre est important; …).
Pour l'instant, nous vous demandons d'afficher chaque fois qu'un nouveau membre ou qu'une relation est créée et bien sûr l'affichage ne se fait pas dans vos codes d'implementation du réseau.
Voici un exemple de début de trace :
New Member created Member [age=20, description=l'ami, nom =Admete] New Member created Member [age=20, description=le dieu ..., nom =Zeus] New Member created Member [age=20, description=la femme de zeus, nom =Hera] New Relation created (3:Member [age=20, description=le hero, nom =Hercule], Member [age=20, description=l'ami, nom =Admete]) New Relation created (3:Member [age=20, description=l'ami, nom =Admete], Member [age=20, description=le hero, nom =Hercule]) New Relation created (2:Member [age=20, description=le hero, nom =Hercule], Member [age=20, description=le dieu ..., nom =Zeus]) New Relation created (2:Member [age=20, description=le dieu ..., nom =Zeus], Member [age=20, description=le hero, nom =Hercule]) New Member created Member [age=20, description=le hero, nom =Hercule] New Relation created (2:Member [age=20, description=le dieu ..., nom =Zeus], Member [age=20, description=la femme de zeus, nom =Hera]) New Relation created (2:Member [age=20, description=la femme de zeus, nom =Hera], Member [age=20, description=le dieu ..., nom =Zeus]) New Member created Member [age=0, description=Asterix, le plus intelligent, nom =Asterix] New Member created Member [age=0, description=falbala, la plus jolie, nom =Falbala] New Member created Member [age=0, description=Obelix, le plus intelligent, nom =Obelix] New Member created Member [age=0, description=Panoramix, le plus magique, nom =Panoramix] New Member created Member [age=0, description=Abraracourcix, chef du village, nom =Abraracourcix]
La date du rendu au plus tard : 28/11 à 23h45
Sur Jalon avec comme nom pour l'archive : Gr <numeroGroupe> + Nom des étudiants dans le groupe