User Tools

Site Tools


2017_2018:s3:concprogobjet:td:td6

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
2017_2018:s3:concprogobjet:td:td6 [2017/11/12 10:04]
blay [Réutilisation par adaptation]
2017_2018:s3:concprogobjet:td:td6 [2017/11/12 19:12]
blay
Line 45: Line 45:
  
   - Vous devez construire un réseau social dont les spécifications sont les suivantes (cf. Interface //​SocialNetworkInterface//​): ​   - Vous devez construire un réseau social dont les spécifications sont les suivantes (cf. Interface //​SocialNetworkInterface//​): ​
-       * un membre a un nom, un age et une description;​+       * un membre a un nom, un âge et une description;​
        * Un membre a est en relation avec membre b avec une force entre 1 et 5 : 5 faible, 1 très forte. a peut se considérer en relation avec b à la force 1 et b ne pas se considérer en relation avec a!        * Un membre a est en relation avec membre b avec une force entre 1 et 5 : 5 faible, 1 très forte. a peut se considérer en relation avec b à la force 1 et b ne pas se considérer en relation avec a!
        * On veut pouvoir savoir quels sont les membres en relation avec un membre au rang X : exemple : a -> b -> c -> a : a est en relation avec b au rang 1; a est en relation avec c au rang 2; c est relation avec a au rang 1; etc. (Méthode : ''​relateToRank(MemberInterface member, int rank)''​) ​        * On veut pouvoir savoir quels sont les membres en relation avec un membre au rang X : exemple : a -> b -> c -> a : a est en relation avec b au rang 1; a est en relation avec c au rang 2; c est relation avec a au rang 1; etc. (Méthode : ''​relateToRank(MemberInterface member, int rank)''​) ​
Line 69: Line 69:
 ===== Réutilisation par adaptation ===== ===== Réutilisation par adaptation =====
  
-  - On veut intégrer dans notre réseau social, des membres du réseau ''​facebookGhost'' ​dont vous avez déjà récupéré un "​bouchon/​proxy" ​en récupérant les tests +  - On veut intégrer dans notre réseau social, des membres du réseau ''​facebookGhost''​. Lisez bien toute la suite avant de commencer. 
-        * INFO : Les classes du package //​facebookGhost//​ s'​inspirent très fortement de l'​interface fournie par Facebook. En cela, elles se comportent comme un "​proxy"​ simplifié qui pourrait être remplacé par le véritable reseau Facebook à terme((Pour cela, il faudrait quand même mettre à jour ce code avec les dernières évolutions de l'​interface et le compléter... donc il reste "un peu" de travail)). ). +        * Vous avez déjà récupéré un "​bouchon/​proxy"​. ​En effet, les classes du package //​facebookGhost//​ s'​inspirent très fortement de l'​interface fournie par Facebook. En cela, elles se comportent comme un "​proxy"​ simplifié qui pourrait être remplacé par le véritable reseau Facebook à terme((Pour cela, il faudrait quand même mettre à jour ce code avec les dernières évolutions de l'​interface et le compléter... donc il reste "un peu" de travail)). ). 
-        * on veut ajouter dans notre réseau des membres qui correspondent à des "​users"​ du reseau ​ facebookGhost (FG); le nom du "​user"​ dans le reseau facebookGhost (name) devient le nom du membre dans notre réseau (nom) et on garde la référence sur le "​User"​ pour avoir toujours une description à jour qui correspond au profil; +        * On veut ajouter dans notre réseau des membres qui correspondent à des "​users"​ du reseau ​ facebookGhost (FG). Pour cela, il suffit de créer le membre en déclarant qu'il existe dans un autre réseau((Comme vous le feriez en vous demandant à vous connecter par votre compte facebook par exemple));  
-        * on veut "récupérer" dans notre réseau, les relations qui correspondent soit à des relations familiales, soit à des relations d'​amitiés dans le réseau FG lorsque les Users ciblés sont connus de notre réseau, c'est à dire que nous avons déjà un membre de même nom. Par défaut, une relation de famille correspond à une relation de force 2 dans notre réseau et celle d'​amitié ont une force 3.  +             ​* ​le nom du "​user"​ dans le reseau facebookGhost (name) devient le nom du membre dans notre réseau (nom)  
-        quand on ajoute dans notre réseau un membre correspondant au reseau ​FG, on recherche parmi ses relations directes dans FG s'il existe des users connus de notre propre réseau et on lui ajoute les relations si elles n'​existaient pas, exemples :  +             ​* ​on garde la référence sur le "​User"​ pour avoir toujours une description à jour qui correspond au profil, ainsi notre réseau ne contient pas la description du membre mais à la demande de description,​ on va la chercher dans le réseau FG ((En résumé, si vous modifiez votre profil dans facebook, vous n'avez pas besoin de de mettre à jour celle-ci dans l'​autre réseau))  ​
-             ​* Hercule est connu du réseau FG et se déclare comme membre de notre réseau (''​addMember("​Hercule",​ true)''​) +             ​* on "récupère" dans notre réseau, les relations qui correspondent soit à des relations familiales, soit à des relations d'​amitiés dans le réseau FG **lorsque les users ciblés sont connus de notre réseau**, c'est à dire que nous avons déjà un membre de même nom. Par défaut, une relation de famille correspond à une relation de force 2 dans notre réseau et celle d'​amitié ont une force 3.  
-                  * On récupère du réseau FG son nom. +                 ​Quand on ajoute dans notre réseau un membre correspondant au réseau ​FG, on recherche parmi ses relations directes dans FG s'il existe des users connus de notre propre réseau et on lui ajoute les relations si elles n'​existaient pas, exemples :  
-                  * On récupère sa famille (Zeus, Alcmène) et ses amis (Admète) +       ​Exemple :  ​Hercule est connu du réseau FG et se déclare comme membre de notre réseau (''​addMember("​Hercule",​ true)''​) 
-                  * Seuls Zeus et Admete sont connus de notre réseau; la relation de Hercule vers Zeus est ajoutée avec une force de 2, celle entre Hercule et Admete est ajoutée avec une force de 3; nous mettons également à jour les relations inverses.+                    * On récupère du réseau FG son nom. 
 +                    * On récupère sa famille (Zeus, Alcmène) et ses amis (Admète) 
 +                    * Seuls Zeus et Admete sont connus de notre réseau; la relation de Hercule vers Zeus est ajoutée avec une force de 2 (lien de famille), celle entre Hercule et Admete est ajoutée avec une force de 3 (lien d'​amitié); nous mettons également à jour les relations inverses ​avec la même force.
  
 ===== Réutilisation par observation ===== ===== Réutilisation par observation =====
  
-Chaque fois qu'une nouvelle relation est ajoutée dans FGon vérifie ​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. ​+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és 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. ​
  
-Pour cela nous utilisons le fait qu'un réseau FG est observable. ​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.+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.
  
 <​html>​ <​html>​
2017_2018/s3/concprogobjet/td/td6.txt · Last modified: 2017/11/13 08:30 by blay