🧪 Labo 11.2B
Télécharger la solution de départ contenant les différents exercices du laboratoire 11.2B
Disponible ici 👉 Laboratoire11_2B
🎯 Objectif
L’objectif de ces exercices est de vous familiariser avec le concept d'interface :
- Apprendre à utiliser une interface qui existe déjà
- Définir et utiliser une nouvelle interface
🟢 Exercice 1 : IThermostat
Dans le projet Exercice_1, l’interface IThermostat vous est fournie. Elle représente le contrat à respecter pour modéliser un thermostat électronique.
Dans cet exercice, vous devez implémenter l’interface IThermostat à travers une nouvelle classe nommée Thermostat.
La classe Thermostat doit vous permettre d'instancier un thermostat fonctionnel.
📋 Diagrammes de classes
Voici les diagrammes pour l'interface fournie IThermostat et la classe Thermostat à créer :

Diagramme IThermostat : Les éléments y sont écrits en italiques, car ce sont des éléments abstraits. Ils ne contiennent pas de code, ce sont seulement des signatures.
Diagramme Thermostat : Notez le symbole au-dessus du diagramme qui indique que la classe Thermostat implémente l’interface IThermostat.
Notez également la présence d’une méthode supplémentaire ResetTempérature() qui n’est pas exigée dans le contrat.
📋 Liste des TODOs à compléter:
- À partir des diagrammes de classes, créez une classe
Thermostatqui implémente l'interfaceIThermostat. - Dans votre
Main(), intanciez un nouvel objetThermostat unThermostatetIThermostat unAutreThermostat. - Est-il possible d'appeler la méthode AugmenterTemperature() à partir des objets
unThermostatetunAutreThermostat? Si oui, pourquoi est-ce le cas ? - Est-il possible d'appeler la méthode ResetTempérature() à partir des objets
unThermostatetunAutreThermostat? Astuce : vous devrez utiliser le transtypage pour corriger l'erreur obtenu.
🟢 Exercice 2 : AppMontre
Dans le projet AppMontre, l’interface IMontre vous est fournie. Elle représente le contrat à respecter pour modéliser une montre.
Dans cet exercice, vous devez implémenter l’interface IMontre à travers une nouvelle classe nommée Montre.
La classe Montre doit vous permettre de faire fonctionner l'application WinForms fournie.
📋 Diagrammes de classes
Voici les diagrammes pour l'interface fournie IMontre et la classe Montre à créer :

📋 Liste des TODOs à compléter (dans FrmPrincipal.cs):
-
Dans le projet
AppMontre, choisir l'option "Ajouter une classe et nommer le nouveau fichier "Montre.cs" -
La première fois que nous avons construit la classe Montre nous avons utilisé un diagramme de classe (Labo 2.1). Dans ce projet il y a une interface nommée IMontre, elle contient les propriétés et méthodes que la montre devra implémenter.
-
Ajouter deux constructeurs à la classe Montre (impossible d'imposer les constructeurs dans une interface). Le constructeur devra avoir 3 paramètres soit : les heures, les minutes et les secondes.
-
Compléter le code la classe Montre. Vous pouvez vous référez au Labo 2.1
-
Dans
FrmPrincipal.cs, retirer les commentaires devant le code jusqu'à la fin et exécuter le programme. Il devrait fonctionner.
🟢 Exercice 3 : ILecteurAudio
-
À partir du diagramme de classe et de la classe
LecteurAudiofournie :- Déterminer quelles propriétés et méthodes appartiennent au contrat minimal
ILecteurAudio; - Écrire l’interface
ILecteurAudiocorrespondante.
- Déterminer quelles propriétés et méthodes appartiennent au contrat minimal
-
Modifier la déclaration de
LecteurAudiopour qu’elle implémente cette interface. -
Testez votre implémentation en instanciant un objet
ILecteurAudio monLecteurdans votreMain()et assurez-vous que l'appel des méthodes Jouer() et Pause() soit fonctionnel.
📋 Diagrammes de classes
Voici les diagrammes pour l'interface ILecteurAudio et la classe LecteurAudio :
