2015_2016:s3:concprogobjet:td:td4
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
2015_2016:s3:concprogobjet:td:td4 [2015/10/25 07:57] – [Réutilisation par adaptation] blay | 2015_2016:s3:concprogobjet:td:td4 [2015/10/27 09:00] (current) – [Ressources] blay | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== TD Réutilisation ====== | ====== TD Réutilisation ====== | ||
- | ===== Réutilisation par composition et héritage ===== | + | Objectifs : |
+ | * Apprendre à réutiliser des codes | ||
+ | * Utilisation du pattern Adapter | ||
+ | * Utilisation du pattern Observer | ||
+ | A la fin du TD, se trouvent des ressources (codes entre autre) indispensables à la réalisation de ce TD. | ||
- | - Construire un réseau social : | ||
- | * un membre a un nom et un age 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! | ||
- | * 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. | ||
- | * une relation est soit familiale soit professionnelle soit amicale | ||
- | * On veut savoir toutes les personnes qui font parti de notre cercle familial, professionnel ou amical : b est dans le cercle familiale de a s'il existe un chemin de relations familiales entre a et b. | ||
- | * On veut pouvoir calculer la distance entre 2 personnes, en choisissant la plus courte distance : | ||
- | * a --1-> b --5-> c et a --2-> d --5-> c : la distance est de 6 entre a et c; | ||
- | ===== Réutilisation par adaptation ===== | ||
- | - On veut intégrer dans notre réseau social, des membres du reseau facebookGhost. On nous donne les classes suivantes que nous ne pouvons pas modifier. | + | <note important> |
- | * on veut ajouter dans notre reseau des membres qui correspondent | + | </ |
- | * on veut ajouter des relations qui correspondent soit à des relations familiales, soit à des relations d' | + | |
- | * quand on ajoute | + | |
- | * Hercule est connu du réseau FG et se déclare comme membre de notre réseau; | + | |
- | * 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, celle entre Hercule et Admete est ajoutée avec une force de 3; Nous mettons également à jour les relations inverses. | + | |
- | Prevoir de leur donner un programme principal avec ce réseau... | ||
+ | <box round rgb(135, | ||
- | Au début du reseau FG | + | Faire passer |
- | new user (" | + | |
- | new user ("Alcmène", | + | |
- | new user (" | + | |
- | new user (" | + | |
- | new user (" | + | |
- | new friend(" | + | |
- | new Family(" | + | |
- | new Family(" | + | |
- | new Family(" | + | |
- | ===== Réutilisation par observation ===== | + | |
- | Chaque fois qu'une nouvelle relation est ajoutée dans FG, on veut vérifier si les " | + | {{: |
- | Plus complexe | + | Vous n'avez que deux interfaces à implémenter |
+ | Ce qui suit est là pour vous aider. }} | ||
+ | </ | ||
+ | La figure suivante visualise les interfaces et classes fournies pour les tests. | ||
+ | {{ : | ||
+ | ===== Réutilisation par composition et héritage ===== | ||
+ | - Construire un réseau social : | ||
+ | * un membre a un nom et un age 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! | ||
+ | * 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 : '' | ||
+ | * On veut pouvoir calculer la distance entre 2 personnes, en choisissant la plus courte distance : | ||
+ | * a --1-> b --5-> c et a --2-> d --5-> c : la distance est de 6 entre a et c;(Méthode : '' | ||
+ | D' | ||
+ | <note tip>Un réseau social peut être vu comme un graphe. | ||
+ | Rechercher des relations entre ses membres, revient à parcourir le graphe. | ||
+ | |||
+ | Pour vous aider (et c'est aussi obligatoire ;-) ) vous utiliserez les classes suivantes, | ||
+ | |||
+ | La figure suivante visualise une part de ces codes. | ||
+ | {{ : | ||
+ | |||
+ | |||
+ | </ | ||
+ | |||
+ | {{ : | ||
+ | ===== Réutilisation par adaptation ===== | ||
+ | |||
+ | - On veut intégrer dans notre réseau social, des membres du réseau '' | ||
+ | * on veut ajouter dans notre réseau des membres qui correspondent à des " | ||
+ | * on veut " | ||
+ | * 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' | ||
+ | * Hercule est connu du réseau FG et se déclare comme membre de notre réseau ('' | ||
+ | * 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, celle entre Hercule et Admete est ajoutée avec une force de 3; nous mettons également à jour les relations inverses. | ||
+ | |||
+ | ===== Réutilisation par observation ===== | ||
+ | |||
+ | Chaque fois qu'une nouvelle relation est ajoutée dans FG, on vérifie si les " | ||
+ | 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' | ||
- | Reprendre le TD de 'lan dernier, il est bon mais l'appliquer sur des reseaux sociaux... a priori je l' | + | < |
+ | <!-- Plus complexe : 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 " | ||
+ | </ | ||
- | demande pour des graphes valués... | ||
- | peut etre voir à refaire l' | ||
- | https:// |
2015_2016/s3/concprogobjet/td/td4.1445759835.txt.gz · Last modified: 2015/10/25 07:57 by blay