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 | ||
2015_2016:s3:concprogobjet:td:td2 [2018/09/16 22:53] blay [Architecture : Interface graphique et contrôleur] |
2015_2016:s3:concprogobjet:td:td2 [2018/09/16 23:02] blay [Architecture : Interface graphique et contrôleur] |
||
---|---|---|---|
Line 58: | Line 58: | ||
===== Architecture : Interface graphique et contrôleur ===== | ===== Architecture : Interface graphique et contrôleur ===== | ||
L'objectif est ici de décomposer l'application pour que : | L'objectif est ici de décomposer l'application pour que : | ||
- | * L'interface n'interagit jamais directement avec le métier. | + | * Le **programme principal** consiste à créer créer un controleur et à le démarrer. |
+ | <code java> | ||
+ | public static void main(String[] args) throws Exception { | ||
+ | Controleur c = new Controleur(); | ||
+ | c.start(); | ||
+ | } | ||
+ | |||
+ | </code> | ||
+ | * L'**interface** n'interagit jamais directement avec le métier. | ||
* Elle ne connait pas non plus le contrôleur dans cet exercice. | * Elle ne connait pas non plus le contrôleur dans cet exercice. | ||
* Voici{{:2015_2016:s3:concprogobjet:td:userconsole.java| un exemple de code pour l'interface}}. Pour se concentrer sur l'architecture, l'interface est une classe Java qui utilise ''Scanner'' pour lire au clavier et ''System.out.print...'' pour l'affichage. | * Voici{{:2015_2016:s3:concprogobjet:td:userconsole.java| un exemple de code pour l'interface}}. Pour se concentrer sur l'architecture, l'interface est une classe Java qui utilise ''Scanner'' pour lire au clavier et ''System.out.print...'' pour l'affichage. | ||
- | * Le contrôleur joue le rôle de chef d'orchestre entre le métier et l'interface. | + | * Le **contrôleur** joue le rôle de chef d'orchestre entre le métier et l'interface. |
* Il ne peut pas utiliser System.out...; tout affichage passe par l'interface. | * Il ne peut pas utiliser System.out...; tout affichage passe par l'interface. | ||
* Il n'a pas le droit de modifier la partie métier sans passer par des objets métiers. | * Il n'a pas le droit de modifier la partie métier sans passer par des objets métiers. | ||
* Il n'est pas autorisé à stocker la liste des bus etc. Pensez à utiliser le principe de délégation. | * Il n'est pas autorisé à stocker la liste des bus etc. Pensez à utiliser le principe de délégation. | ||
* Voici des extraits de code pour vous aider ci-après. | * Voici des extraits de code pour vous aider ci-après. | ||
- | <code> | + | <code java> |
public class Controleur { | public class Controleur { | ||
| | ||
Line 102: | Line 110: | ||
}} | }} | ||
</code> | </code> | ||
- | - Développez le code correspondant. **[[https://mbf-iut.i3s.unice.fr/doku.php?id=2015_2016:s3:concprogobjet:td:td2&#aide|Utilisez les informations et codes donnés]]** ci-dessous. | + | |
- | - Quel type de contrôleur avez-vous défini en respectant les directives données? Est-il "bon"? Que feriez-vous sinon pour l'améliorer? | + | |
+ | - Développez le code correspondant. | ||
+ | - Quel type de contrôleur avez-vous défini en respectant les directives données? | ||
- Vous devez à présent pouvoir jouer le scénario précédent en utilisant votre interface graphique. | - Vous devez à présent pouvoir jouer le scénario précédent en utilisant votre interface graphique. | ||
- | - Visualisez vos codes sous la forme de diagrammes de séquences.\\ ''Outils => Code => Instant Reverse to sequence diagram'' {{ :2015_2016:s3:concprogobjet:td:tosequencediagram.png?300 |}} | + | - Visualisez votre code correspondant à la création d'un forum sous la forme d'un diagramme de séquences.\\ ''Outils => Code => Instant Reverse to sequence diagram'' {{ :2015_2016:s3:concprogobjet:td:tosequencediagram.png?300 |}} |
- Pouvez-vous décrire chacune de vos classes avec une seule phrase? Faîtes-le dans les commentaires de vos classes. | - Pouvez-vous décrire chacune de vos classes avec une seule phrase? Faîtes-le dans les commentaires de vos classes. | ||
==== aide ==== | ==== aide ==== |