This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
2014_2015:s3:concprogobjet:td:td6 [2014/11/02 21:20] blay [Pièce numérique intelligente] |
2014_2015:s3:concprogobjet:td:td6 [2014/11/22 19:00] blay [Refactoring et Pattern Composite] |
||
---|---|---|---|
Line 40: | Line 40: | ||
===== Capteurs Passifs ===== | ===== Capteurs Passifs ===== | ||
- | Les capteurs "passifs" sont des capteurs qu'il faut interroger pour obtenir la valeur correspondant par exemple à une température ou un éclairage. A un capteur passif nous associons un capteur physique qui vous est donné. Il s'agit d'un composant très simple qui lit et écrit une valeur dans un fichier. Il vous sert de "bouchon" puisque nous ne disposons pas d'un vrai capteur physique auquel nous connecter. | + | Les capteurs "passifs" sont des capteurs qu'il faut interroger pour obtenir la valeur correspondant par exemple à une température ou un éclairage. A un capteur passif nous associons un {{:2014_2015:s3:concprogobjet:td:capteurphysique.zip|capteur physique}} qui vous est donné. Il s'agit d'un composant très simple qui lit et écrit une valeur dans un fichier. Il vous sert de "bouchon" puisque nous ne disposons pas d'un vrai capteur physique auquel nous connecter. |
Line 47: | Line 47: | ||
- Définir la classe CapteurPassif en lui associant un capteurPhysique. | - Définir la classe CapteurPassif en lui associant un capteurPhysique. | ||
+ | Voici les codes dont vous avez besoin : | ||
+ | *{{:2014_2015:s3:concprogobjet:td:capteurphysique.zip|}} | ||
+ | *{{:2014_2015:s3:concprogobjet:td:fichiero.zip|}} | ||
===== Pièce équipée ===== | ===== Pièce équipée ===== | ||
Line 175: | Line 178: | ||
===== Pièce numérique "intelligente" ===== | ===== Pièce numérique "intelligente" ===== | ||
- | L'objectif est à présent de définir des pièces intelligentes comme contenant des capteurs passifs et des capteurs passifs réactifs. Lorsque l'un de ces derniers capteurs a sa valeur modifiée, la pièce est notifiée du changement et le update consiste à ré-afficher les valeurs de tous les capteurs. | + | L'objectif est à présent de définir des pièces intelligentes qui lorsque l'un de ses capteurs "Observable" a sa valeur modifiée, la pièce est notifiée du changement et le update consiste à ré-afficher les valeurs de tous les capteurs. |
- | QUESTION : | + | QUESTION (10mn) : |
* Vous devez définir une "SmartPiece" sans modifier une Piece. | * Vous devez définir une "SmartPiece" sans modifier une Piece. | ||
Line 186: | Line 189: | ||
Lorsque l'on ajoute un capteur à une pièce de la maison on veut que le tableau de bord de la maison prenne automatiquement en compte cette évolution. | Lorsque l'on ajoute un capteur à une pièce de la maison on veut que le tableau de bord de la maison prenne automatiquement en compte cette évolution. | ||
- | Question : Modifier vos classes pour prendre en compte cette nouvelle exigence, si vous ne l'aviez pas déjà fait. | + | QUESTION : |
+ | * Modifier vos classes pour prendre en compte cette nouvelle exigence, si vous ne l'aviez pas déjà fait. | ||
Si vous le voulez, vous êtes autorisé à cette étape à utiliser les classes java ''java.util.Observable'' et ''java.util.Observer''. | Si vous le voulez, vous êtes autorisé à cette étape à utiliser les classes java ''java.util.Observable'' et ''java.util.Observer''. | ||
- | ===== Capteurs Réactifs ===== | + | ===== Capteurs actifs ===== |
Un capteur actif est associé à un capteur physique. Il scrute régulièrement la valeur physique du capteur physique qui lui est associé et notifie ses observeurs chaque fois qu'il détecte un changement. | Un capteur actif est associé à un capteur physique. Il scrute régulièrement la valeur physique du capteur physique qui lui est associé et notifie ses observeurs chaque fois qu'il détecte un changement. | ||
Line 196: | Line 200: | ||
Voici les éléments de code dont vous avez besoin pour le définir : | Voici les éléments de code dont vous avez besoin pour le définir : | ||
* Ce code vous permet de le déclarer comme pouvant s'exécuter "dans une thread à part" : <code Java> | * Ce code vous permet de le déclarer comme pouvant s'exécuter "dans une thread à part" : <code Java> | ||
- | public class CapteurReactif ... implements... Runnable{ | + | public class CapteurActif ... implements... Runnable{ |
</code> | </code> | ||
Line 222: | Line 226: | ||
- | QUESTION (15mn) : | + | QUESTION (30mn) : |
- | * Définir les capteurs réactifs | + | * Définir les capteurs actifs |
+ | |||
+ | |||
+ | ===== Refactoring et Pattern Composite ===== | ||
+ | |||
+ | On vient de réaliser que des dispositifs peuvent être associés directement à la maison et pas forcément aux pièces. | ||
+ | Proposer une modélisation qui préserve l'ensemble de vos "tests" mais vous permet de prendre en compte cet aspect. | ||
<html> | <html> | ||
Line 371: | Line 381: | ||
Si maintenant on veut que tout message dans la boite SNAPCHAT soit ephemere ? | Si maintenant on veut que tout message dans la boite SNAPCHAT soit ephemere ? | ||
- | |||
- | ===== Estimation de performance ===== | ||
- | |||
- | |||
- | Une route est définie par des Tronçons. Un tronçon est défini par deux Positions et une longueur. Une Position est définie par un nom. | ||
- | |||
- | Calculer le plus cours chemin entre deux positions. | ||
- | Déterminer la complexité de votre algorithme. | ||
- | => Outils de recherche de code dupliqué? | ||