Boulain Joris, Handouz Yassine, Regnier Fabien, Giraud Antoine

Slides:



Advertisements
Présentations similaires
Gestion de la concurrence avec Entity Framework Développement d’application avec base de données Chapitre 23 Hugo St-Louis – Automne 2015.
Advertisements

Commerce électronique Automne  Introduction  Création du panier d’achats  Migration du panier d’achats  Conclusion.
EJB 2 et spécialisation Présentation. Spécialisation La spécialisation Concept objet implémenté dans les langages dits orientés objet. Très souvent accompagné.
Modélisation Géométrique Cours 4 : Acquisition de la géométrie.
SITC 10 rue de la libération Bâtiment C Neuilly-sur-Marne Processus création et envoi de newsletter changement du mot de passe.
1- Régles de normalisation 2ème partie : normalisation Modèle Conceptuel des Données 2- Les Formes Normales 3- Dépendances Fonctionnelles 4- Recap - Méthodologie.
SQL partie 5 1 LMD create – update – primary key secondary key.
1 Programmation en C++ Fonctions ● Déclaration et définition de fonctions ● Arguments ● Surcharge ● Arguments optionnels ● Fonctions constantes ● Fonctions.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Fonctions ● Namespace ● Tests ● Boucles ● Pointeurs, références.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Types et opérations fondamentales ● Tests ● Boucles ● Pointeurs, références.
Utilisation des Gammes Standard / CUCN JF CALLIZO - S.BIASIO La chaîne numérique en Productique.
Calcul de probabilités
Cours Initiation aux Bases De Données
Genève, 6 mars 2012 Des objectif pédagogiques aux compétences Certificat de formation continue en conception et développement de modules e-learning.
V Suite géométrique : 1°) Définition : un+1
I- ANALYSE DU BESOIN / Plan
Mettre à jour les données
Environnement du développement de BD ORACLE REPORTS 10g
L’opération de multiplication
DOC MYCK : Programmation
Cahier des charges Hôpital Avicenne.
Représentation de l’information en binaire:
Javadoc et débogueur Semaine 03 Version A17.
CONCEPTION DE DIAPORAMA
STSWEB Structures : Divisions et groupes Supprimer une division
Principes de programmation (suite)
11ième Classe (Mardi, 18 novembre) CSI2572
Les fonctions.
Les bases de données et le modèle relationnel
Centralisation de logs
Programmation en C++ Fonctions
Présentation multimédia avec open office
Routage S 7 - Questionnaire N°1
Principes de programmation (suite)
Cyber-Sphinx Séance 2.
Les interfaces en PHP.
Fonctions Logiques & Algèbre de BOOLE
Programmation en C++ Fonctions
Cyber-Sphinx Séance 2.
Présentation des EJB Enterprise Java Beans.
Programmation en C++ C++ de base
Formules de calculs et Fonctions. Structure des formules de calcul Commencez toujours votre calcul par le signe =, ensuite sans laisser d’espaces, placez.
Modélisation avec UML 2.0 Partie II Diagramme de classes.
Type Concret – Type Abstrait
Programmation Orientée Objet
Calcul Scientifique Initiation à SCILB
Calculs des incertitudes Lundi 30 Avril 2018 Master de Management de la Qualité, de la Sécurité et de l’Environnement.
Bases de données sous Access. Initiation aux bases de données  Structure d’une base de données.
Chapitre2: SGBD et Datawarehouse. On pourrait se demander pourquoi ne pas utiliser un SGBD pour réaliser cette structure d'informatique décisionnelle.
Simulation de robots en MATLAB
Cours 10 : Les Web Services et WSDL Février Version 1.0 -
Les classes et les objets
SYSTèMES à évènements discrets
Les cas d’utilisation 420-KE2-LG.
La puissance du transfert d’énergie électrique entre un générateur et un circuit constitué de conducteurs ohmiques dépend-elle de ces conducteurs ohmiques.
GESTION DES INTERVENTIONS. Schéma d’une intervention de maintenance : de maintenance :  Événement prévu  Événement imprévu Maintenance préventive Maintenance.
LES CONTRATS ALÉATOIRES RÉALISÉ PAR : ASMA BICHA ENCADRÉ PAR : M.HABACHI 2018/2019.
DESIGN PATTERN BUILDER KADRI LOUBNA CHARMATI SEWSEN.
Rappels sur le grafcet Normes NF EN CEI /01/2019
Transition vers l’assignation automatique des stages à la résidence
Définition :. Pourquoi le GEMMA ? GEMMA : l'acronyme GEMMA signifie : Guide d'Etude des Modes de Marche et d'Arrêt. Comme son nom l'indique, c'est un guide.
RABAH M ed Ali 2018/2019
Principes de programmation (suite)
Multiplier en ligne par 10, 100, 1 000
1 O ffice De La F ormation P rofessionnelle Et De La P romotion De T ravail I nstitut S pécialiste en T echnologie A ppliquée -ASSA Prof. : Omar BOUNHAS.
Enchantonslecole.fr.
Contenu Systèmes de test parallèles Multithreading Synchronisation
DONNÉE DE BASE QM Manuel de formation. Agenda 2  Introduction  Objectif de la formation  Données de base QM: Caractéristique de contrôle Catalogue.
THEME : LE BIOS ET LES REGISTRES. INTRODUCTION : Le fonctionnement de l’ordinateur dépend de plusieurs programmes et matériel tel que les BIOS et registres.
Transcription de la présentation:

Boulain Joris, Handouz Yassine, Regnier Fabien, Giraud Antoine Design Pattern ETAT 28/07/2019 Boulain Joris, Handouz Yassine, Regnier Fabien, Giraud Antoine

Boulain Joris, Handouz Yassine, Regnier Fabien, Giraud Antoine Problème ce motif est à utiliser lorsque l’on veut qu’un objet change de comportement lorsque son état interne change Exemple Mario change plusieurs fois d’état La modification des états d'un objet est un problème assez courant. Prenez comme exemple le personnage d'un jeu, comme Mario. Au cours du jeu, Mario change plusieurs fois d'état, par exemple, lors de la prise d'une fleur de feu, le mario peut grandir, s'il est petit, et il est capable de lancer des boules de feu. Chaque transition dépend de l'état actuel du personnage. Toutes ces conditions doivent être vérifiées pour effectuer ce changement d'état unique. Imaginez maintenant les différents états et la complexité pour accomplir l'échange de ces états: Petit Mario, Grand Mario, Mario Fleu et Mario Plume. 28/07/2019 Boulain Joris, Handouz Yassine, Regnier Fabien, Giraud Antoine

Boulain Joris, Handouz Yassine, Regnier Fabien, Giraud Antoine Changement d’état +1000 points Lorsque Mario prend une fleur de feu, 4 actions différentes peuvent se produire, selon l'état actuel du Mario: Attraper fleur: Si Mario petit -> Mario grand et Mario Feu Si Mario grand -> Mario Feu Si Mario Feu -> 1000 points Si Mario cape -> Mario Feu Attraper Champignon: Si Mario petit -> Mario grand Si grand Mario -> 1000 points Si Mario cape -> 1000 points Attraper plume: Si Mario petit -> Mario grand et Mario cape Si Mario grand -> Mario cape Si Mario feu -> Mario Feu 28/07/2019 Boulain Joris, Handouz Yassine, Regnier Fabien, Giraud Antoine

Boulain Joris, Handouz Yassine, Regnier Fabien, Giraud Antoine Changement d’état Prendre Dommage : Si Mario petit -> Mario mort Si Mario grand -> Mario petit Si Mario Feu -> Mario grand Si Mario cape -> Mario grand Il n'est certainement pas utile d'investir du temps et du code dans une solution qui utilise des vérifications multiples pour chaque changement d'état. Afin de ne pas risquer d'oublier de traiter certains états et de rendre le code beaucoup plus facile à entretenir, regardons comment le modèle d'état peut aider. 28/07/2019 Boulain Joris, Handouz Yassine, Regnier Fabien, Giraud Antoine

Boulain Joris, Handouz Yassine, Regnier Fabien, Giraud Antoine Diagramme de classes Etat Contexte Etats concrets 28/07/2019 Boulain Joris, Handouz Yassine, Regnier Fabien, Giraud Antoine

Boulain Joris, Handouz Yassine, Regnier Fabien, Giraud Antoine Code L'intention du motif: Nous pouvons voir que le motif d’état modifiera le comportement d'un objet lorsqu'il y a un changement dans son état interne, comme s'il avait changé de classe Pour implémenter la valeur par défaut, -> créer une classe qui contient l'interface de base de tous les états. Les opérations de base se feront à partir de l'interface. Etat L'intention du motif: "Permet à un objet de modifier son comportement lorsque son état interne change. L'objet semblera avoir changé de classe. " Par intention, nous pouvons voir que le motif modifiera le comportement d'un objet lorsqu'il y a un changement dans son état interne, comme s'il avait changé de classe. Pour implémenter la valeur par défaut, vous devrez créer une classe qui contient l'interface de base de tous les états. Comme nous avons défini précédemment ce qui peut provoquer des changements dans les états d'objet Mario, ce seront les opérations de base qui feront partie de l'interface. 28/07/2019 Boulain Joris, Handouz Yassine, Regnier Fabien, Giraud Antoine

Boulain Joris, Handouz Yassine, Regnier Fabien, Giraud Antoine Code Tous les états du Mario devraient implémenter les opérations de changement d'état. Notez que chaque opération renvoie un objet de type MarioEtat, car chaque opération représente un changement d'état, il sera alors retourné le nouvel état de Mario. Tous les états du Mario devraient implémenter les opérations de changement d'état. Notez que chaque opération renvoie un objet de type MarioEtat, car chaque opération représente un changement d'état, il sera alors retourné le nouvel état de Mario. 28/07/2019 Boulain Joris, Handouz Yassine, Regnier Fabien, Giraud Antoine

Boulain Joris, Handouz Yassine, Regnier Fabien, Giraud Antoine Code La classe qui définit l'état est très simple, il suffit de définir quel état doit être retourné lorsqu'une opération de changement est appelée. Nous nous rendons compte que la classe qui définit l'état est très simple, il suffit de définir quel état doit être modifié lorsqu'une opération de changement est appelée. 28/07/2019 Boulain Joris, Handouz Yassine, Regnier Fabien, Giraud Antoine

Boulain Joris, Handouz Yassine, Regnier Fabien, Giraud Antoine Code La classe Mario a une référence à un objet d'état, cet état sera mis à jour selon les opérations de changement d'état définies. Lorsqu'une opération est invoquée, l'objet d'état effectuera l'opération et la mise à jour automatiquement. La classe mario a une référence à un objet d'état, cet état sera mis à jour selon les opérations de changement d'état définies. Lorsqu'une opération est invoquée, l'objet d'état effectuera l'opération et la mise à jour automatiquement. 28/07/2019 Boulain Joris, Handouz Yassine, Regnier Fabien, Giraud Antoine

Boulain Joris, Handouz Yassine, Regnier Fabien, Giraud Antoine Conséquences + possibilité d’ajouter ou de retirer des états et des transitions de manière simple + suppression de traitements conditionnels + les transitions entre états sont rendues explicites - Chaque classe d’état doit avoir connaissance des autres sous-classes + Comme on le voit dans l'exemple, le motif est utilisé lorsqu'il est nécessaire d'isoler le comportement d'un objet, qui dépend de son état interne. + La norme élimine la nécessité de conditionnalités complexes qui seront souvent répétées. Chaque «branche» du conditionnel finit par devenir un objet, de sorte que l’on peut traiter chaque état comme s'il s'agissait d'un objet réel. + L’ajout de nouveaux états est très simple, il suffit de créer une nouvelle classe et de mettre à jour les opérations de transition de l'état. Un autre avantage est qu’avec la structure du motif on sait tout de suite quelles sont les états et quelles sont les transitions possibles. - Le principal avantage de cette solution est qu'il est plus simple d'ajouter les états, chaque nouvel état définit ses transitions. Le problème est que, par conséquent, chaque classe d'état doit avoir connaissance des autres sous-classes, et si l'une d'entre elles change, la modification risque de se propager. 28/07/2019 Boulain Joris, Handouz Yassine, Regnier Fabien, Giraud Antoine