• Aucun résultat trouvé

Examen 2ème session - Mai 2010

N/A
N/A
Protected

Academic year: 2021

Partager "Examen 2ème session - Mai 2010"

Copied!
2
0
0

Texte intégral

(1)

Licence Informatique 3éme année - Module Programmation Objet Avancé

Examen 2ème session - Mai 2010

Problème B. Le pattern State (8 points)

Le pattern State consiste à permettre à un objet de changer d'état de façon dynamique à l'exécution. L'objet représente un contexte (Context) et ses états possibles sont réalisés dans des classes concrètes d'état (ConcreteState), qui respectent toutes un modèle abstrait d'état (State).

On veut utiliser le pattern State pour écrire des classes permettant de gérer le pointeur de la souris dans une interface graphique. Le pointeur est représenté par une classe Cursor qui possède une méthode permettant de récupérer la forme du curseur pour l'afficher, et une méthode appelée lorsqu'un clic est effectué sur un composant :

public class Cursor {

public CursorShape getShape(){ … } public void clic(Component c){ … } }

On suppose que la classe CursorShape est déjà écrite, ainsi que ses sous-classes SelectCursorShape et ActionCursorShape. Le curseur peut prendre 2 états :

- l'état de sélection, où la forme du curseur est une instance de SelectCursorShape et où le clic sur un composant déclenche sa sélection (on suppose qu'il existe une méthode select() dans la classe Component).

- l'état d'action, où la forme du curseur est une instance de ActionCursorShape et où le clic sur un composant déclenche l'action correspondant à ce composant (on suppose qu'il existe une méthode action() dans la classe Component).

1) Ecrire les classes permettant de représenter les états du curseur. Compléter la classe Cursor pour que le programme fonctionne selon les spécifications.

2) On veut maintenant que l'action déclenchée par un clic sur un composant ne comporte pas forcément que l'appel à la méthode action(), mais puisse varier en fonction du contexte, par exemple en fonction du type de système d'exploitation sur lequel tourne l'application, du type de machine (ordinateur, téléphone, etc). Quel pattern utiliser et

(2)

pourquoi? Sans écrire le code des classes, dessiner un schéma UML qui montre comment cette fonctionnalité pourrait être ajoutée.

Références

Documents relatifs

Toxique pour les organismes aquatiques, entraîne des effets néfastes à long terme.. Provoque des brûlures de la peau et de graves lésions

un neutre accusatif, une féminin accusatif, un masculin accusatif Voc en PRODUCTION — A1 E13.. vous = 2ème personne

Les cartes mères qui incluent un contrôleur de ce type sont rares et nettement plus coûteuses. L'avantage à avoir un contrôleur SCSI intégré plutôt qu'une carte SCSI PCI

Un composant TDataSource permet de faire le lien entre une table ou une requête et des composants.. Département Informatique Page 2/2 d'affichage/édition

Nous partirons pour cela d'un TCustomLabel (une classe identique à TLabel mais avec des propriétés non publiées) et nous lui ajouterons un composant TTimer pour « compter » le

construire les réciproques appelées logarithmes en cherchant des solutions à l’équation vérifiée par g. Nous allons donc envisager le problème sous les deux angles. Cherchons f

On représentera le coût d'une multiplication (resp. d'une élévation au carré) de coefficients par ID (resp.. On considère l'algorithme de

Elle dépend du matériau du noyau et du champ magnétique B (T) Remarque :  dépend aussi de la température et de la fréquence.. Classement de certains matériaux à