User Tools

Site Tools


2018_2019: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
2018_2019:s3:concprogobjet:td:td6 [2018/11/20 15:30]
blay [Réutilisation par observation]
2018_2019:s3:concprogobjet:td:td6 [2018/12/10 15:21]
blay [Rendu]
Line 30: Line 30:
     - {{:​2018_2019:​s3:​concprogobjet:​td:​archivereseausocial.zip|les interfaces à implémenter pour faire passer les tests,​}} ​     - {{:​2018_2019:​s3:​concprogobjet:​td:​archivereseausocial.zip|les interfaces à implémenter pour faire passer les tests,​}} ​
  
 +===> Pour ceux qui ont déjà chargé des codes, voici les codes de {{:​2018_2019:​s3:​concprogobjet:​td:​graphesimple.zip|ParcoursSimple}} corrigés et dans l'​archive de tests les codes ont été corrigés en conséquence.
  
    
Line 103: Line 104:
 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. 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...  ​+//​Facultatif ​& Difficile// : 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 ...  ​En fait si vous avez utilisé un adaptateur comme étant un extends de Member, vous ne pourrez pas le faire facilement. ​
  
  
 +=====  A vous,  tout seul !  (5mn) =====
 + 
  
-===== Rendu =====+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; ...).
  
-    ​- un diagramme UML qui visualise uniquement les classes/​interfaces dont votre code dépend directement.+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 :  
 +<​code>​ 
 +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] 
 +</​code>​ 
 + 
 + 
 +===== Remarque ===== 
 + 
 +**[[https://​docs.oracle.com/​javase/​9/​docs/​api/​java/​util/​Observable.html|Dépréciation]] des Interfaces Observer et Observable en Java 9.**  
 +//This class and the Observer interface have been deprecated. The event model supported by Observer and Observable is quite limited, the order of notifications delivered by Observable is unspecified,​ and state changes are not in one-for-one correspondence with notifications.//​ 
 + 
 + 
 + 
 +Ce n'est pas grave. Si vous avez compris les principes du Patron, vous pourrez les retrouver dans d'​autres paradigmes tels que les files d’attente (queues), les sémaphores (semaphores ), ou les gestionnaires d'​évènements dans ''​java.beans''​ package. 
 +===== Rendu ===== 
 +    ​- un diagramme UML qui visualise uniquement les classes/​interfaces dont votre code **dépend directement**.
           * le diagramme vise à visualiser l'​architecture de votre solution ​           * le diagramme vise à visualiser l'​architecture de votre solution ​
-                    * les attributs faisant référence à des classes/​interfaces sont uniquement représentés sous la forme d'​associations (rôle, cardinalité,​ orientée) +                    * **les différents patterns apparaissent sous forme d'​annotations** si ce n'est pas évident (e.g. si une classe hérite ''​d'​observable''​ c'est évident, mais si ''​User''​ correspond à l'''<​Adaptee>''​ cela ne l'est pas.) 
-                    ​pas de getter et setter +          * le diagramme peut être obtenu par reverse-engineering, c'est même conseillé, ​mais doit être adapté pour répondre aux points précédents. ​
-                    * pas de classes non directement utilisées par exemple, GrapheX etc. +
-                    ​* les différents patterns apparaissent sous forme d'​annotations +
-          * le diagramme peut être obtenu par reverse-engineering mais doit être adapté pour répondre aux points précédents. ​+
     - les codes sources des classes que vous avez créées ou modifiées exclusivement.     - les codes sources des classes que vous avez créées ou modifiées exclusivement.
  
-La date du rendu au plus tard : 28/11 à 23h45+La date du rendu au plus tard : mardi 4 décembre ​à 8h (S3T) 
 + 
 +La date du rendu au plus tard : vendredi 4 décembre à 19h (S3A)
  
  
2018_2019/s3/concprogobjet/td/td6.txt · Last modified: 2018/12/10 15:23 by blay