Seance 5 :Patrons de Conception: Commande et Singleton

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Quel est l'objectif principal du patron de conception 'Commande' ?

  • Créer une seule instance d'une classe et fournir un point d'accès global.
  • Définir une interface pour créer des objets, mais laisser les sous-classes décider quelle classe instancier.
  • Simplifier la structure d'une classe en séparant les responsabilités.
  • Encapsuler une requête en tant qu'objet, permettant ainsi de paramétrer les clients avec différentes requêtes. (correct)

Le patron de conception 'Commande' permet de supprimer le couplage entre l'objet qui invoque une commande et celui qui sait comment la réaliser.

True (A)

Dans le contexte du patron 'Commande', quel est le rôle de l'objet 'Invoker' ?

L'invocateur demande à la commande d'exécuter la requête.

Dans le patron 'Commande', l'objet qui connaît la manière d'effectuer les opérations demandées est appelé le ______.

<p>receveur</p> Signup and view all the answers

Associez les composants du patron de conception 'Commande' avec leurs définitions :

<p>Commande = Interface qui déclare une méthode pour exécuter une opération. CommandeConcrète = Définit une liaison entre un objet receveur et une action ; implémente execute() en invoquant la ou les opérations correspondantes sur le receveur. Client = Crée un objet CommandeConcrète et fixe son receveur. Invoker = Demande à la commande d'exécuter la requête.</p> Signup and view all the answers

Quels sont les avantages de l'utilisation du patron 'Commande' ?

<p>Toutes ces réponses. (C)</p> Signup and view all the answers

Dans le patron 'Commande', l'objet 'Invoker' contient la logique d'exécution de la commande.

<p>False (B)</p> Signup and view all the answers

Quelles sont les méthodes de la classe ICommand?

<p><code>execute()</code> et <code>undo()</code></p> Signup and view all the answers

Dans le contexte du patron de conception Commande, un exemple d'application pourrait être une ______ qui supporte les 4 opérations.

<p>calculatrice</p> Signup and view all the answers

Associez les responsabilités suivantes avec les classes de la calculatrice:

<p>Usager = Création des commandes et stockage. Calculateur = Réception des commandes. Addition = Implémentation de l'interface <code>ICommand</code>.</p> Signup and view all the answers

Quel est l'objectif principal du patron de conception 'Singleton' ?

<p>Assurer qu'une classe n'a qu'une seule instance et fournir un point d'accès global à celle-ci. (B)</p> Signup and view all the answers

Dans le patron 'Singleton', le constructeur de la classe est généralement déclaré public.

<p>False (B)</p> Signup and view all the answers

Dans le patron 'Singleton', comment obtient-on l'instance unique de la classe ?

<p>En appelant une méthode statique, généralement nommée getInstance().</p> Signup and view all the answers

Un exemple d'utilisation du patron 'Singleton' est la gestion d'une ______ d'attente d'une imprimante.

<p>file</p> Signup and view all the answers

Associez les éléments du patron 'Singleton' avec leur rôle :

<p>Constructeur privé = Empêche l'instanciation directe de la classe depuis l'extérieur. Méthode statique getInstance() = Fournit un point d'accès global à l'instance unique de la classe. Variable statique de l'instance = Stocke l'instance unique de la classe.</p> Signup and view all the answers

Quels sont les avantages du patron 'Singleton' ?

<p>A et B. (A)</p> Signup and view all the answers

La classe Math en Java est un exemple de Singleton.

<p>False (B)</p> Signup and view all the answers

Quel est le code à utiliser afin de créer une instance de SingleRandom?

<p><code>SingleRandom.getInstance()</code></p> Signup and view all the answers

La classe Runtime est une classe de type ______.

<p>Singleton</p> Signup and view all the answers

: Associez les définitions suivantes au patron approprié :

<p>Commande = Encapsule une requête sous forme d'objet, permettant de paramétrer des clients avec différentes requêtes, de mettre en file d'attente ou d'enregistrer les requêtes, et de prendre en charge les opérations annulables. Singleton = Garantit qu'une classe ne possède qu'une seule instance et fournit un point d'accès global à celle-ci.</p> Signup and view all the answers

Dans quel scénario le patron de conception 'Commande' est-il particulièrement utile ?

<p>Lorsque vous voulez encapsuler une requête en tant qu'objet pour la flexibilité et l'extensibilité. (A)</p> Signup and view all the answers

Le patron de conception 'Singleton' peut être facilement étendu pour permettre la création de plusieurs instances contrôlées.

<p>True (A)</p> Signup and view all the answers

Dans le code du patron Singleton, comment éviter d'instancier plus d'une fois la classe?

<p>Avec un constructeur privé.</p> Signup and view all the answers

Le patron ______ est utilisé lorsqu'on veut s'assurer qu'une ressource partagée unique est accessible de partout .

<p>Singleton</p> Signup and view all the answers

Associez les avantages aux patrons de conception correspondants :

<p>Singleton = Accès contrôlé à une instance unique. Commande = Facilite l'implémentation des opérations d'annulation (undo/redo).</p> Signup and view all the answers

Quel est le rôle de l'interface Action dans le contexte du patron de conception Commande et des composants Swing ?

<p>Elle étend l'interface <code>ActionListener</code> et permet d'associer un nom et une icône à une action. (B)</p> Signup and view all the answers

Dans l'implémentation du patron Commande avec l'interface Action de Swing, l'état du composant (par exemple, un bouton) n'est pas mis à jour pour correspondre à l'état de l'action.

<p>False (B)</p> Signup and view all the answers

Dans un exemple d'implémentation du patron Commande, quel est le nom de la méthode que l'invocateur appelle?

<p>execute()</p> Signup and view all the answers

Pour une calculatrice, la commande pourrait être ______.

<p>soustraction</p> Signup and view all the answers

Faites correspondre les avantages du patron de conception Singleton :

<p>Accès contrôlé = Permet de contrôler l’accès à une ressource partagée unique. Variable globale = Réduit le besoin de variables globales.</p> Signup and view all the answers

Parmi les énoncés suivants, lequel décrit le plus précisément la raison d'utiliser un patron de conception Singleton ?

<p>Pour assurer qu'une classe n'a qu'une seule instance et fournir un point d'accès global à cette instance. (B)</p> Signup and view all the answers

La classe Runtime est une classe de type Singleton.

<p>True (A)</p> Signup and view all the answers

Dans une application qui utilise le design pattern Singleton, comment appelez-vous la méthode qui permet d’intialiser la creation d’une instance?

<p>getInstance()</p> Signup and view all the answers

Le contrôleur d’une application est un bon exemple pour le design pattern ______.

<p>Singleton</p> Signup and view all the answers

Pour une application de swing, lequel de ces éléments correspond à la command, action et invocateur.

<p>Action = correspondant à la command JButton = correspondant a action System = correspondant a invocateur</p> Signup and view all the answers

Flashcards

Patron de commande

Un patron qui encapsule les actions à exécuter dans des objets.

Interface Commande

Définit une interface avec une méthode pour exécuter une commande.

Commande concrète

Responsable de l'exécution d'une action spécifique liée à une commande.

Invoker

Objet qui invoque une commande.

Signup and view all the flashcards

Receiver

Objet qui reçoit et exécute réellement la commande.

Signup and view all the flashcards

Avantage du patron Commande

Supprime le couplage entre l'objet qui invoque et celui qui réalise.

Signup and view all the flashcards

Patron Singleton

Assure une seule instance d'une classe et un point d'accès global.

Signup and view all the flashcards

Instance unique

Une unique instance de classe.

Signup and view all the flashcards

Solution Singleton

Responsabilité de la classe d'assurer l'unicité de son instance.

Signup and view all the flashcards

Contrôle d'accès Singleton

La classe contrôle comment et quand les classes clientes accèdent à l'instance.

Signup and view all the flashcards

Avantage Singleton

Fournit un accès contrôlé à une instance unique.

Signup and view all the flashcards

Extensibilité Singleton

Permet potentiellement l'extension à instance unique.

Signup and view all the flashcards

SingleRandom.getInstance()

Retourne un générateur de nombres aléatoires unique.

Signup and view all the flashcards

Study Notes

Patrons de Conception : Commande et Singleton

Patron Commande

  • Le framework Swing offre des objets graphiques comme des boutons.
  • Ces objets émettent des requêtes quand un utilisateur les actionne.
  • Les concepteurs de Swing ne connaissaient pas les objets qui recevraient la requête ni comment elle serait exécutée.
  • Les applications utilisant Swing savent quelle requête est émise et quel objet doit réagir à cette requête.
  • La méthode actionPerformed dans une application peut devenir complexe avec l'ajout de boutons.
  • L'application peut avoir un nombre excessif de méthodes et responsabilités.
  • Une même action peut être exécutée de différentes manières.
  • Une action peut être interdite dans certains contextes.
  • L'interface Action étend ActionListener.
  • Une action peut avoir un nom et une icône associée.
  • Une action peut être associée à différents éléments de l'interface graphique.
  • Une action peut être activée ou désactivée.
  • Une action peut déclarer une autre action comme opposée.
  • Lorsque une action est attachée à un composant avec setAction, l'état du composant est mis à jour pour correspondre à l'état de l'action.
  • L'objet Action est enregistré comme écouteur (ActionListener) sur le composant.
  • Si l'état de l'action change, l'état du composant change également.
  • Les actions à exécuter sont encapsulées dans des objets étendant la classe AbstractAction.
  • Ces objets exécutent les actions et peuvent être utilisés par plusieurs composants graphiques.
  • Des états (activé, désactivé) peuvent leur être associés.
  • Cela permet de gérer les actions, les composer ou les annuler (undo).
  • L'objet source de l'action est découplé de celui sur lequel l'action s'exécute.
  • Il est utile d'implémenter les commandes comme des objets pour associer des informations ou garder une trace des commandes pour les ré-exécuter, les annuler (undo), ou les regrouper (macros).
  • Il est important de découpler l'objet qui invoque la commande de celui qui la reçoit.
  • Interface Command : définit une méthode pour exécuter la commande et permet d'accéder à l'état de la commande.
  • Chaque classe concrète implémente l'interface Command.
  • Pour invoquer la commande, on appelle la méthode d'exécution.
  • La structure du patron "Commande" peut être simplifiée en évitant de montrer les objets sur lesquels les commandes agissent et ceux pouvant être à l'origine de l'exécution des commandes.
  • Une structure plus complète est utilisée, avec un Client, un Invoker, une Command et un Receiver.
  • Le client crée une commande concrète et spécifie son receveur, configurant ainsi un invocateur.
  • L'invocateur appelle la méthode Execute de la commande concrète.
  • La méthode Execute de la commande concrète invoque des opérations de l'objet receveur.
  • Parmi les avantages, le patron "Commande" supprime le couplage entre l'objet qui invoque une commande et celui qui sait comment la réaliser; tous les objets "Commande" ont une interface commune.
  • Les objets "CommandeConcrete" peuvent être assemblés dans une commande composite, permettant de contrôler leur séquencement, les mettre dans des files d'attente et autoriser la réversion des opérations (Undo/Redo).

Patron Singleton

  • Nécessité d'avoir une seule instance d'une classe avec un accès global.
  • Quelques exemples : spooler, classe de fabrication d'objets, classe de gestion d'accès à une base de données.
  • Un générateur de nombres aléatoires peut être implémenté avec un patron Singleton.
  • Le constructeur d'une classe Singleton est privé.
  • Une méthode statique retourne l'instance unique de la classe.
  • Il doit exister une instance unique d'une classe qui doit être accessible.
  • La classe elle-même a la responsabilité d'assurer l'unicité de son instance.
  • La classe Singleton définit un constructeur privé et fournit une méthode (getInstance()) pour retourner une référence à son instance unique.
  • La classe Singleton contrôle quand et comment les classes clientes y accèdent.
  • Avantages du Singleton : accès contrôlé, réduction des variables globales, possibilité d'extension à instance unique, adaptabilité à un nombre variable d'instances.
  • La classe Math de Java n'est pas une instance de Singleton, car elle ne peut pas être instanciée ni étendue.
  • La classe Runtime est un exemple de Singleton.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

More Like This

Use Quizgecko on...
Browser
Browser