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 revisionLast revisionBoth sides next revision | ||
2015_2016:s3:concprogobjet:td:td4 [2015/10/25 07:55] – [Réutilisation par observation] blay | 2015_2016:s3:concprogobjet:td:td4 [2015/10/27 08:59] – [Réutilisation par observation] blay | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== TD Réutilisation ====== | ====== TD Réutilisation ====== | ||
+ | |||
+ | 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. | ||
+ | |||
+ | |||
+ | |||
+ | <note important> | ||
+ | </ | ||
+ | |||
+ | |||
+ | <box round rgb(135, | ||
+ | |||
+ | Faire passer le test avec un code propre et sans le modifier si ce n'est la référence à la classe "// | ||
+ | |||
+ | {{: | ||
+ | |||
+ | 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 ===== | ===== Réutilisation par composition et héritage ===== | ||
+ | |||
+ | |||
- Construire un réseau social : | - Construire un réseau social : | ||
- | * un membre a un nom et un age; | + | * 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! | * 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! | ||
- | | + | |
- | * 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 : | * 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; | + | * 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 ===== | ===== Réutilisation par adaptation ===== | ||
- | - On veut intégrer dans notre réseau social, des membres du reseau | + | - On veut intégrer dans notre réseau social, des membres du réseau '' |
- | * on veut ajouter dans notre reseau | + | * on veut ajouter dans notre réseau |
- | * on veut ajouter des relations qui correspondent soit à des relations familiales, soit à des relations d' | + | * on veut " |
- | * quand on ajoute un membre correspondant au reseau | + | * quand on ajoute |
- | * Hercule est connu du réseau FG et se déclare comme membre de notre réseau; | + | * 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, son âge. | + | * On récupère du réseau FG son nom. |
* On récupère sa famille (Zeus, Alcmène) et ses amis (Admète) | * 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. | + | * 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... | + | ===== Réutilisation par observation ===== |
+ | Chaque fois qu'une nouvelle relation est ajoutée dans FG, on vérifie si les " | ||
- | Au début | + | Pour cela nous utilisons le fait qu'un réseau FG est observable. Il suffit donc de déclarer notre réseau comme Observer |
- | new user (" | + | |
- | new user (" | + | |
- | new user (" | + | |
- | new user (" | + | |
- | new user (" | + | |
- | new friend(" | + | |
- | new Family(" | + | |
- | new Family(" | + | |
- | new Family(" | + | |
- | ===== Réutilisation par observation ===== | + | |
- | Chaque fois qu'une nouvelle relation | + | < |
+ | <!-- Plus complexe : Chaque fois qu'un nouveau user est ajouter | ||
+ | </ | ||
- | 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 " | ||
+ | ===== Ressources ===== | ||
+ | Pour cela on vous donne les classes suivantes : | ||
+ | - Le package {{ : | ||
+ | - Le package {{: | ||
+ | Les 2 diagrammes suivants ont été obtenus par reverse Engineering: | ||
2015_2016/s3/concprogobjet/td/td4.txt · Last modified: 2015/10/27 09:00 by blay