Designs Patterns comment rendre son code faiblement couplé, et maintenable...

Slides:



Advertisements
Présentations similaires
Mathilde VINCENT - Olivier JOURDAN Paris - le 7/2/2012
Advertisements

Réalisation d’un Framework pour la création de jeux d'arcades
Introduction au patrons de conception « Design patterns »
Patterns & Anti Patterns
Reference Model of Open Distributed Processing
Vue d'ensemble Implémentation de la sécurité IPSec
1 Les technologies XML Cours 1 : Les Web Services et Architectures Orientées Services Fé vrier Version 1.0 -
Didactique des Sciences de l'Ingénieur
INTRODUCTION.
بسم الله الرحمن الرحيم. Institut Supérieure des Etudes Technologiques de Kébili.
comment rendre son code faiblement couplé, et maintenable...
Page de garde Introduction aux Design Patterns ISIA, Mars 2003
Analyse et Conception orientée objet
Révision et principes SOLID
Révision Les principes SOLID.
Interaction audio sur le site web du LIA
Historique de SystemC Regroupe 4 courants didées: SCENIC Project : Synopsys+UC Irvine Philips System-Level Data Types, VSIA SLD DWG IMEC, Hardware-Software.
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Patterns et maintenabilité dans lindustrie : un cas concret Christophe Saint-Marcel Silicomp Ingénierie.
Journées Pattern Grenoble - 1 Une expérience à l'IUT de Bayonne : Les patrons Composite et Interprète Philippe Lopistéguy I.U.T. de Bayonne-Pays.
Structures de données IFT-2000
Introduction au paradigme orienté-objet (suite)
Design Patterns Factory Method – Pattern de construction [DANT] Génie Logiciel 1.
Design Pattern: Decorator
Abstract Factory Pattern Une AbstractFactory est une classe qui existe pour créer des instances de d'autres classes. Créé par le « Gang of Four » Est un.
Journées Patterns, Grenoble, 3-4 Avril 2003 DR /AC/JPGpage 1 Agnès Conte Département Informatique - IUT2 Grenoble Transparents issus dune présentation.
Développement dapplication avec base de données Semaine 10 : WCF avec Entité Framework Automne 2013.
INF1101 Algorithmes et structures de données
Patrons de conceptions de créations
Entity Framework 4 Mitsuru FURUTA Relations techniques développeurs
1. Représentation des informations
Référence PRE.022.AtelierTechAMUE_ ppt APOGEE SOA et Système d’information Atelier technique 10/02/2006.
3ème partie: Risques / Enjeux Présentation de Nathalie Caccamo
Approche d’Amélioration de la Performance. Qu’est ce que la Performance ? Le travail/les tâches que les personnes font Les résultats de ce travail/de.
(Vient du grec et signifie « Peut prendre plusieurs formes »)
ANALYSE METHODE & OUTILS
Présentation de CORBA et de IIOP
Présenté par: SILVA COSTA DARCY GOMES FODE Encadré par: MOUSTAPHA MAHFOUD.
Démarches de résolution de problèmes © R. & M. Lyons Janvier 2010.
INTRODUCTION.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
Conception pilotée par le domaine Simon Laroche: PCMS Ernst Perpignand: Pyxis Technologies.
Factory Design Patterns. Contents Factory patterns: principesFactory patterns: principes The Factory Method patternThe Factory Method pattern The Abstract.
Design Patterns en programmation par objets. Plan  Design patterns –De quoi s’agit-il? –Pourquoi faut-il les utiliser?  Design patterns essentiels 
La Modélisation Orientée Objet Concevoir un programme : modélisation du problème à résoudre Notion de programme : machine de Turing Pouvoir d’expression.
Université de Sherbrooke
Hatainville Les Moitiers d’Allonne – Tel : Website : stratic.online.com La démarche projet Mars 2001.
Algorithmique et programmation (1)‏
Design Pattern Hichame ELKHALFI.
Réalisé par : Mr IRZIM Hédi Mr JRAD Firas
Human Knowledge La nouvelle génération de moteurs sémantiques.
Design Pattern : Stratégie
Introduction au Génie Logiciel
Arbre GénéalogiqueDiagramme de Classes Comment la visualisation d’une hiérarchie de classes facilitera le travail de notre client ?
5ième Classe (Mercredi, 19 octobre) Prog CSI2572.
Tutorat en bio-informatique Le 14 novembre Au programme… Les objets –Propriétés (attributs) –Constructeurs –Méthodes.
Développement d’application Web.  Internet  WWW  Client/Serveur  HTTP.
Notifications et Communication réseau D. BELLEBIA – 18/12/2007NSY208 CNAM.
Factory Design Patterns Raffaella Sanna Sylvain Giroux.
Page 1 Le nouvel outil d’écoute clients dédié aux professionnels de l’évènementiel E vent S at.
INSTITUT SUPERIEURE D’INFORMATIQUE Design Pattern
BlueJ_VII 1 Java, les objets : tout de suite ! Conception de classes (1) Notes de cours associées au chapitre 7 tutorial BlueJ
Template Method Design Pattern. But Définir le squelette d’un algorithme tout en déléguant certaines étapes aux sous-classes. Les sous-classes peuvent.
RÉNOVATION BTS Comptabilité et Gestion 2015 BTS-CG & PGI Daniel Perrin Toininlien vers le texte intégral de cette présentation.
Révision Les principes SOLID. Question  Qu’est-ce que le S de Solid?
Transcription de la présentation:

Designs Patterns comment rendre son code faiblement couplé, et maintenable...

Pourquoi réinventer la roue, alors que nos douleurs quotidiennes ont été étudiées par d’autres avant nous ? Par masochisme ? Par sadisme ? Constat : Hormis les algorithmes métier, les difficultés de l’ingénierie de code sont souvent identiques ! Les solutions mises en œuvres sont (trop) souvent dépendante de l’imagination du développeur… Une solution : Les Designs Patterns ! Ce sont un ensemble de recettes permettant de résoudre les principaux problèmes liés à l’ingénierie de code, Objectif : Garder un code ouvert au changement, mais fermé aux modifications,

Fondements des DP GOF (Gang of four) N’est pas le groupe de musique post-punk des années 70… Mais plutôt les 4 créateurs à l’origine des DP ! « Chaque patron décrit un problème qui se manifeste constamment dans notre environnement, et donc décrit le cœur de la solution à ce problème, d’une façon telle que l’on puisse réutiliser cette solution des millions de fois, sans jamais le faire deux fois de la même manière » 23 patterns de « base » Quel que soit le langage, ou la technologie objet ! Tous les autres sont des dérivés... (MVVM,...)

3 Types Création (Creational Patterns) Singleton, Factory, Abstract Factory, Prototype Structural (Structural Patterns) Adapter, Facade, Proxy,... Comportements (Behavioral Patterns) Strategy, Chain of responsability, Iterator, Observer,...

Formalisme

Entrons dans le vif du sujet

Le pattern Ss s s s s s s s

Etape 3 L’année suivante, le client désire ajouter une évolution : les canards savent voler... Nom : Ss s s s s s s s Type : Comportement But : Encapsuler les comportements susceptible de changer, afin de les rendre interchangeables. Exercice : Etape 1 Un client désire une FPS de canards... Un canard a un nom, peut nager, cancaner et doit être affiché. Etape 2 Lors de la release de la version, le client note que tout les canards nagent et cancanent de la même manière... c’est MAL !. Bug ! les canards en plastique qui étaient dans l’application (des leurres en quelque sorte) se mettent à voler... Nous avons donc un problème de conception ! Quelles solutions d’après vous pourraient apporter implémentation pérenne, en d’autres termes : Disposer d’une application fermée aux modifications mais ouverte aux changements ?

Héritage ? Interfaces ? Reprenons de la hauteur ! Quel est le réel problème ? Que proposez vous comme solutions ? LE CHANGEMENT ! Nom : Ss s s s s s s s Type : Comportement But : Encapsuler les comportements susceptible de changer, afin de les rendre interchangeables.

LA VRAIE question porte donc sur ce qui change : Quels sont les différences entre les différents canards ? réponse : leur comportement... (vol, cancan, affichage) LA VRAIE question porte donc sur ce qui change : Quels sont les différences entre les différents canards ? réponse : leur comportement... (vol, cancan, affichage) Nom : Ss s s s s s s s Type : Comportement But : Encapsuler les comportements susceptible de changer, afin de les rendre interchangeables.

Nom : Stratégie (Strategy) Type : Comportement But : Encapsuler les comportements susceptible de changer, afin de les rendre interchangeables. Cancan etc.

Nom : Stratégie (Strategy) Type : Comportement But : Encapsuler les comportements susceptible de changer, afin de les rendre interchangeables. Exemple de stratégie

Nom : Stratégie (Strategy) Type : Comportement But : Encapsuler les comportements susceptible de changer, afin de les rendre interchangeables. Exemple de Contexte

Nom : Stratégie (Strategy) Type : Comportement But : Encapsuler les comportements susceptible de changer, afin de les rendre interchangeables. Exemples réels : Une application de paiement en ligne peut offrir différents moyens de paiements, il suffit de choisit la bonne stratégie en fonction du choix du client. Car hormis le mode de paiement, la suite du flux de commande demeure identique... En.net, la classe ArrayList (contexte) est une bon exemple. La méthode sort par défaut offre une implémentation (stratégie concrète) par défaut. Cette méthode peut être substituée par l’implémentation fournie à l’exécution (implémentation de l’interface IComparer - stratégie)...

Privilégier le couplage faible favorise l’évolution... I l e s t p r é f é r a b l e d ’ i m p l é m e n t e r d e s i n t e r f a c e s ! Retour sur les brèves de comptoir... L’héritage est un concept qui s’applique au modèle métier (le plus souvent). Encapsuler ce qui change est un gage d’évolution ! Un code doit être ouvert au changement, mais fermé aux modifications... La composition est préférable à l’héritage ! Nom : Stratégie (Strategy) Type : Comportement But : Encapsuler les comportements susceptible de changer, afin de les rendre interchangeables.