Seance 8: Patron Mémento et MVC

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

Quelle est la principale fonction d'un gestionnaire de transactions simplifié dans le contexte d'une base de données ?

  • Créer des tables dans la base de données.
  • Modifier le schéma de la base de données.
  • Exécuter des transactions sur les tables de la base de données. (correct)
  • Optimiser les requêtes SQL.

Une transaction dans une base de données doit nécessairement contenir une seule opération pour être considérée comme valide.

False (B)

Quelles sont les quatre propriétés ACID d'une transaction?

Atomicité, Cohérence, Isolation et Durabilité

Dans le contexte des propriétés ACID, la propriété de ______ garantit que si une partie d'une transaction échoue, toute la transaction est annulée.

<p>atomicité</p> Signup and view all the answers

Associez les opérations SQL suivantes à leur fonction respective dans une base de données:

<p>UPDATE = Modifier les données existantes. DELETE = Supprimer des données. INSERT = Ajouter de nouvelles données.</p> Signup and view all the answers

Que se passe-t-il si une opération dans une transaction échoue ?

<p>Toute la transaction est annulée. (C)</p> Signup and view all the answers

Le patron Mémento est principalement utilisé pour la journalisation des transactions dans une base de données.

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

Quel est le principal avantage de l'utilisation du modèle Memento ?

<p>Il préserve l'encapsulation de l'objet tout en permettant la sauvegarde et la restauration de son état.</p> Signup and view all the answers

Le modèle Memento est également appelé ______.

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

Associez les rôles suivants du patron Memento à leur description :

<p>Originator = Objet dont l'état est à sauvegarder. Memento = Objet qui stocke l'état de l'Originator. Caretaker = Objet responsable de la sauvegarde du Memento.</p> Signup and view all the answers

Qui est responsable de la création du "Memento" dans le patron Memento?

<p>L'Originator (D)</p> Signup and view all the answers

Le Caretaker modifie directement l'état stocké dans l'objet Memento.

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

Quelles sont les conditions dans lesquelles le modèle Memento est approprié ?

<p>Lorsqu'il est nécessaire de sauvegarder l'état d'un objet pour pouvoir le restaurer ultérieurement, et qu'un accès direct à l'état de l'objet violerait son encapsulation.</p> Signup and view all the answers

Un des avantages du patron Memento est qu'il assure l' ______ des données de l'objet et fournit un moyen simple de les récupérer.

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

Associez les concepts suivants aux avantages ou inconvénients du Patron Mémento :

<p>Avantage = Assure l'encapsulation des données de l'objet. Inconvénient = Les opérations de sauvegarde et de restauration de l'état peuvent consommer beaucoup de temps et d'espace.</p> Signup and view all the answers

Quel est l'objectif principal de l'architecture Model-View-Controller (MVC) ?

<p>Séparer la logique de présentation des données de la logique métier. (B)</p> Signup and view all the answers

Dans l'architecture MVC, le modèle est dépendant des vues et des contrôleurs.

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

Décrivez brièvement le rôle du contrôleur dans l'architecture MVC.

<p>Le contrôleur gère les entrées de l'utilisateur et les traduit en actions à effectuer sur le modèle ou la vue.</p> Signup and view all the answers

Dans MVC, la ______ affiche les informations à l'utilisateur et permet de déclencher des actions.

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

Associez les composants MVC à leur description:

<p>Modèle = Encapsule les données et la logique métier de l'application. Vue = Affiche les données à l'utilisateur. Contrôleur = Gère les entrées de l'utilisateur et met à jour le modèle ou la vue.</p> Signup and view all the answers

Quelle est l'importance de séparer l'affichage et le comportement de l'application dans MVC ?

<p>Permettre à l'affichage de refléter immédiatement les manipulations faites sur les données. (B)</p> Signup and view all the answers

Changer le "look and feel" d'une application MVC nécessite de modifier le modèle.

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

Dans l'architecture MVC, comment le contrôleur reçoit-il les entrées de l'utilisateur ?

<p>Sous forme d'événements.</p> Signup and view all the answers

Dans une application MVC, le ______ coordonne l'interaction entre le modèle et la vue.

<p>contrôleur</p> Signup and view all the answers

Associez patrons de conception avec une utilisation probable dans une application organisée selon l'architecture MVC:

<p>Patron Observateur = Les vues doivent s'enregistrer auprès du modèle pour recevoir les notifications. Patron Composite = Une vue est composée d'autres vues. Patron Décorateur = Certains composants graphiques de la vue ont des comportements additionnels.</p> Signup and view all the answers

Pourquoi le patron Observateur est-il souvent utilisé dans les applications MVC ?

<p>Pour permettre aux vues d'être notifiées des changements dans le modèle. (D)</p> Signup and view all the answers

Le patron Composite est utilisé dans MVC principalement pour gérer la logique métier complexe.

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

Comment le patron Décorateur peut-il être utile dans le contexte d'une vue MVC ?

<p>Pour ajouter dynamiquement des comportements additionnels à certains composants graphiques de la vue sans modifier leur structure de base.</p> Signup and view all the answers

Les patrons Commande et ______ sont utiles dans architecture MVC pour manipuler, défaire ou refaire des actions.

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

Dans le contexte de l'implémentation de MVC en Java, associez chaque composant à sa représentation typique :

<p>Modèle = Ensemble de classes. Vues = Interfaces avec des composants graphiques (Swing). Contrôleurs = Listeners (par exemple, ActionListener).</p> Signup and view all the answers

Flashcards

Patron Mémento

Un patron de conception qui capture et externalise l'état interne d'un objet, sans violer l'encapsulation.

Gestionnaire de transaction

Un gestionnaire simplifié permettant d'exécuter des opérations sur une base de données.

ACID (Transactions)

Propriété garantissant qu'une transaction est Atomique, Cohérente, Isolée et Durable.

Objet Memento

Un objet gardant une trace de l'état d'un autre objet, permettant de revenir à cet état.

Signup and view all the flashcards

Contexte (Memento)

Le contexte où l'état d'un objet doit être sauvegardé pour une restauration ultérieure.

Signup and view all the flashcards

Rôle du Memento

Garde la trace de l'état de l'objet initial (Originator), permettant la restauration.

Signup and view all the flashcards

Rôle du Caretaker

Responsable de garder une référence sur le Memento et de le renvoyer à l'objet d'origine.

Signup and view all the flashcards

Architecture MVC

Sépare une application en Modèle (données), Vue (présentation), et Contrôleur (interaction).

Signup and view all the flashcards

Le Modèle (MVC)

Encapsule les données et les fonctions noyau de l'application, indépendant des représentations visuelles.

Signup and view all the flashcards

La Vue (MVC)

Affiche l'information à l'utilisateur et correspond à une interface à travers laquelle l'utilisateur déclenche des actions.

Signup and view all the flashcards

Le Contrôleur (MVC)

Reçoit les entrées sous forme d'événements et les traduit en requêtes sur le modèle ou la vue.

Signup and view all the flashcards

Patron Observateur (MVC)

Patron qui permet aux vues et aux contrôleurs d'être notifiés des changements dans le modèle.

Signup and view all the flashcards

Patron Composite (MVC)

Patron ou une vue peut être composée d'autres vues, créant une structure arborescente.

Signup and view all the flashcards

Patron Décorateur (MVC)

Permet d'ajouter dynamiquement des responsabilités à un objet pour adapter une vue.

Signup and view all the flashcards

Patron Commande (MVC)

Une vue contient des composants graphiques pouvant être manipulés, défaits ou refaits.

Signup and view all the flashcards

Patron Mémento (MVC)

Une vue contient des composants graphiques pouvant être restaurées à un état anterieur.

Signup and view all the flashcards

Study Notes

Patron Mémento et retour sur MVC

  • LOG121 et conception orientée objet.
  • Souad Hadjres est l'enseignante.
  • Le plan inclut le Patron Mémento et un retour sur l'architecture MVC.

Exemple de problème de conception

  • Un gestionnaire de transaction simplifié permet d'exécuter des transactions sur les tables d'une base de données.
  • Une transaction peut contenir plusieurs opérations comme update, delete, insert affectant les tables de la base de données.
  • L'exemple donné est un client qui transfère de l'argent de son compte courant à son compte d'épargne.
  • La transaction doit mettre à jour les deux comptes et enregistrer la transaction dans un journal.

Forme d'une transaction

  • Une transaction inclut des opérations UPDATE pour les comptes courant et épargne, et INSERT INTO pour le journal des transactions.
  • Exemple de code SQL pour une transaction :
    • UPDATE compte-courant SET solde = solde - 50 WHERE num-compte = 81566979
    • UPDATE compte-epargne SET solde = solde + 50 WHERE num-compte = 81566988
    • INSERT INTO journal-transactions VALUES (num_transaction, type_transaction, 81566979, 81566988, 50)
    • COMMIT WORK;

Propriété ACID d'une transaction

  • ACID signifie : Atomique, Cohérente, Isolée et Durable.
  • Si toutes les opérations réussissent, le gestionnaire appelle la méthode "commit" de la transaction.
  • Si une opération échoue, toute la transaction doit être annulée et les tables doivent revenir à leur état initial.

Problème de conception

  • Une conception qui fait une boucle sur les opérations, en appelant execute(), est problématique.
  • En cas d'échec, la transaction doit être annulée et les tables concernées doivent revenir à leur état initial.

Solution au problème

  • Créer un objet Memento qui garde trace de l'état d'un objet de type TableDeLaBD.
  • Avant l'exécution, le gestionnaire demande à TableDeLaBD son objet Memento.
  • Un objet TableDeLaBD est responsable de créer, initialiser et mettre à jour son Memento.
  • En cas d'échec, le gestionnaire renvoie le Memento à l'objet TableDeLaBD pour restaurer l'état.
  • TableDeLaBD utilise le Memento reçu pour récupérer l'information sur son état précédent.

Explication du diagramme de solution

  • La classe Transaction contient une liste d'opérations et des méthodes execute() et commit().
  • La classe GestionaireTransaction exécute une transaction via la méthode execute(Transaction t).
  • La classe TableDeLaBD a un état (State state) et des méthodes pour créer un Memento (createMemento()) et restaurer l'état à partir d'un Memento (setMemento(Memento m)).
  • La classe Memento stocke l'état de TableDeLaBD.

Patron Mémento : Contexte

  • L'état d'un objet doit être sauvegardé pour permettre un retour à cet état si nécessaire.
  • L'accès direct à l'état de l'objet exposerait les détails d'implémentation et violerait l'encapsulation.

Patron Mémento : Solution

  • Création d'un objet Memento (Snapshot) qui garde trace de l'état de l'objet initial (Originator).
  • Le Memento peut garder une partie de l'état initial.
  • L'objet Originator est seul responsable de créer, initialiser et mettre à jour son Memento.
  • Un objet (Caretaker) utilise l'objet original et garde une référence sur le Memento pour le renvoyer à l'objet original.
  • L'objet Caretaker ne modifie pas l'objet Memento.

Structure du patron dans GoF

  • Originator : Contient l'état et les méthodes pour créer et restaurer un Memento.
  • Memento : Stocke l'état de l'Originator.
  • CareTaker : Gère les Mementos.

Avantages et inconvénients

  • Avantages : Garde l'état sauvegardé d'un objet à l'extérieur de celui-ci et assure l'encapsulation des données.
  • Inconvénients : Les opérations de sauvegarde et de restauration peuvent consommer beaucoup de temps et d'espace.

Patrons Mémento et Commande combinés

  • L'enregistrement de l'état avant l'exécution d'une commande permet de restaurer l'état en cas de besoin pour implémenter l'annulation "undo".

Retour sur l'architecture MVC

  • Le plan inclut un retour sur l'architecture MVC.

Exigences d'une application interactive

  • La même information peut être présentée différemment aux utilisateurs.
  • L'affichage et le comportement doivent refléter les manipulations des données.
  • Les changements d'interfaces doivent être faciles sans affecter le noyau de l'application.

Structure MVC

  • MVC divise l'application en trois parties : Modèle, Vues, Contrôleurs.
  • Le Modèle encapsule les données et les fonctions, indépendant des représentations visuelles.
  • Les vues affichent l'information à l'utilisateur et correspondent à une interface pour déclencher des actions.
  • Les contrôleurs sont associés à chaque vue et traduisent les entrées en requêtes sur le modèle ou la vue.

Scénario

  • L'entrée de l'utilisateur change l'état du modèle.
  • Diagramme illustrant : Controller → Model → View.

Éléments à retenir sur MVC

  • Le modèle offre des méthodes pour lire les données par les vues et contrôleurs.
  • Chaque vue crée un contrôleur lors de l'initialisation.
  • Le contrôleur traduit les événements utilisateur en demandes de service au modèle.
  • Les vues liées se mettent à jour lorsque l'état du modèle change.

Exemple d'application MVC

  • Exemple comprenant :
    • un modèle contenant la somme de deux entiers entrés par l'utilisateur.
    • une vue constituant une simple interface utilisateur.
    • un contrôleur coordonnant l'interaction entre le modèle et la vue.

Diagramme de code Source

  • Classe Model contenant l'addition de 2 nombres
  • Classe View contenant l'implémentation graphique de l'interface
  • Classe Controller coordonnant l'interaction entre le Model et la View.

Patrons et architecture MVC

  • Un application organisée selon l'architecture MVC.

MVC et patrons de conception

  • Les vues s'enregistrent auprès du modèle pour être notifiées en cas de changement : Patron Observateur.
  • Une vue peut être composée d'autres vues : Patron Composite.
  • Les composants graphiques peuvent nécessiter des comportements additionnels : Patron Décorateur.

MVC et patrons de conception (suite)

  • Une vue contient des composants graphiques pouvant correspondre à différentes actions : Patron Commande et Patron Mémento.

Implémentation de MVC en Java

  • Le Modèle est un ensemble de classes.
  • Les Vues sont des interfaces avec des composants Swing comme boutons et zones de texte.
  • Les Contrôleurs sont des listeners comme ActionListener.

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