Schéma de concpetion Abstract Factory Exemple Sylvain Giroux.

Slides:



Advertisements
Présentations similaires
Spécialisation/généralisation Héritage Polymorphisme
Advertisements

Programmation Web Les JSP.
F. Voisin : Introduction à Java 1 Introduction à Java - les interfaces - Frédéric VOISIN FIIFO - « Remise à Niveau »
Plan du cours La sérialisation: – comment stocker et restaurer les Objets? Les interfaces graphiques et la programmation évènementielle. –Comment concevoir.
Dernière scéance: Des question?????? + Deux exercices.
Programmer en JAVA par Tama
Tarak Chaari, Stéphane Frénot, Frédérique Laforest, Frédéric Le-Mouël JAV1 JAV – TD 5 Lhéritage en Java.
PHP5 poo.
11:37:32 Programmation Web PHP5 objet "avancé" Jérôme CUTRONA
PHP Interface base de données
بسم الله الرحمن الرحيم. Institut Supérieure des Etudes Technologiques de Kébili.
Chapitre IV Object, interfaces, classes imbriquées.
1 Cours JAVA / Y.Laborde Java : Les types génériques ( ) LES TYPES GENERIQUES : Introduction (diapo 2) Déclaration dun type générique (3) 1re déclaration.
Struts 1 & 2 Tlohi ibtissam Tabit boutaina Ilias bouras
POO-L3 H. Fauconnier1 Chapitre IV 1. classe Object, clonage 2. interfaces 3. classes internes et imbriquées.
Faculté I&C, Claude Petitpierre, André Maurer 1 Java.
Écouteurs de click d'une fenêtre
Effectuer des conversions sur des volumes
Langage Oriente Objet Cours 4.
Cours du 19 octobre. POO-L3 H. Fauconnier2 E) Constructeurs et héritage Le constructeurs ne sont pas des méthodes comme les autres: le redéfinition na.
Premier cours (23 septembre). Cours programmation- orientée objet en Java Licence dinformatique Hugues Fauconnier
77 Utilisation des classes (suite). 7-2 Objectifs A la fin de ce cours, vous serez capables de : Définir des méthodes surchargées dans une classe Fournir.
Classes abstraites et Interfaces
Interfaces (fin) classes locales et internes, Object, clonage.
Factory Design Patterns Factory Method
Le patron de conception « Strategy » Simon Durocher ( )
Langage Oriente Objet Cours 2.
DESS CCI POO-JAVA TD n°7 exercice n°1
JUnit Présentation complète de JUnit et « guide d’utilisation » en 13 transparents.
29/01/09SpringFramework1 SpringFramework Alice GARCIA Fabien FAGOAGA Option Génie Logiciel 3 ème année ENSEIRB.
Introduction au paradigme orienté-objet (suite)
Design Pattern Memento. Principe : Enregistrer les changements d'états d'un objet Objectif : Pouvoir restituer les états précédents d'un objet.
Design Pattern: Decorator
1 Les paquetages («packages»). 2 L'objectif avec les paquetages («packages») est de rendre accessibles aux utilisateurs des classes définies par d'autres.
1 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 3 : Classes et Objects.
Cours 5 Héritage, Interfaces, classes internes. POO-L3 H. Fauconnier2 La classe Object Toutes les classes héritent de la classe Object Object méthodes:
COURS DE PROGRAMMATION ORIENTEE OBJET :
COURS DE PROGRAMMATION ORIENTEE OBJET :
99 Réutilisation du code grâce à l'héritage. 9-2 Objectifs À la fin de ce cours, vous serez capables de : Définir l'héritage Utiliser l'héritage pour.
1111 Gestion des exceptions Objectifs À la fin de ce cours, vous serez capables de : • Expliquer les concepts de base de la gestion des exceptions.
Intention Séparer et extraire les traitements appliquées à différents type de nœuds d’une structure.
Objectifs À la fin de ce cours, vous serez capables de :
1 Fichers Binaires, Accès Direct et Objets. 2 Données binaires. Il s'agit ici de lire et écrire des données binaires par opposition à du texte. Pour ce.
LIFI-Java 2004 Séance du Mercredi 22 sept. Cours 3.
Propriétés. Propriétés ► Les propriétés peuvent être visibles dans les environnements de scripts ► Les propriétés peuvent être accédées par programmation.
Factory Design Patterns. Contents Factory patterns: principesFactory patterns: principes The Factory Method patternThe Factory Method pattern The Abstract.
Types Abstraits.
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.
Cours 7 Classes locales Clonage Divers: tableaux.
12/04/ Les exceptions Cours 11 Cours 11.
Constructeurs H Batatia. Variable statique Une variable statique est partagée par tous les objets d’une classe.
Structures de données avancées : Arbres ‘Left Leaning Red-Black’
Un visiteur… …venu d’ailleurs
Les classes présenté par: RAHMOUNE RIME / ZEKRI SELMA.
Schéma de conception Factory Method Exemple Sylvain Giroux.
Cours 2 Introduction. POO-L3 H. Fauconnier2 D) Un exemple…  Pile abstraite et diverses implémentations.
Cours du 5 novembre.
Héritage H. Batatia. plan Notion (que signifie l’héritage) Ecriture en java Héritage multiple (interdit) Instanciation (partie propre et partie héritée)
PHP5 objet "avancé" Jérôme CUTRONA 09:56:48 Programmation Web
Iterator Design Pattern Alessandro Soro Sylvain Giroux.
Introduction à la programmation objet avec java
Héritage Conception par Objet et programmation Java
Factory Design Patterns Raffaella Sanna Sylvain Giroux.
Généricité.
Bases de données Singleton pour la connexion
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.
Capsule pédagogique 1.1 Les mesures linéaires en unités impériales.
Schéma de conception Factory Method Exemple
Transcription de la présentation:

Schéma de concpetion Abstract Factory Exemple Sylvain Giroux

Problème  Vos clients sont américains et français.  les américains tiennent mordicus à travailler avec des mesures en système impérial  les français tiennent absolument au système métrique.  Implémentez un programme qui garantisse aux utilisateurs de ne travailler que dans un seul des deux systèmes de mesure.  Le système de mesure à utiliser sera spécifié dans un fichier de propriétés.

L’interface abstraite sur la famille de produits public interface Measure { String getUnits(); String getUnits(); Number getValue(); Number getValue(); Measure add(Measure qty); Measure add(Measure qty); Measure substract(Measure qty); Measure substract(Measure qty); Measure convertir(String units); Measure convertir(String units);}

La famille métrique public interface MeasureMetric extends Measure { public static String MILLILITRES = "ml"; public static String MILLILITRES = "ml"; public static String LITRES = "l"; public static String LITRES = "l"; public static String MILLIGRAMMES = "mg"; public static String MILLIGRAMMES = "mg"; public static String GRAMMES = "g"; public static String GRAMMES = "g";}

public class MeasureMetricImpl implements MeasureMetric { public MeasureMetricImpl(Number n, String u) { public MeasureMetricImpl(Number n, String u) { } public String getUnits() {... public String getUnits() {... } public Number getValue() {... public Number getValue() {... } public Measure add(Measure qty) { public Measure add(Measure qty) { Measure m2 = qty.convertir(this.getUnits()); Measure m2 = qty.convertir(this.getUnits()); return new MeasureMetricImpl( return new MeasureMetricImpl( this.getValue(). + m2.getValue(), this.getValue(). + m2.getValue(), this.getUnits()); this.getUnits()); } public Measure substract(Measure qty) { public Measure substract(Measure qty) { }}

public class MeasureFactory { public Measure getVolume(Number n, String u) { ProgramProperties props = ProgramProperties.getInstance(); ProgramProperties props = ProgramProperties.getInstance(); if (props. getProperty("measure.system") == "us") if (props. getProperty("measure.system") == "us") return new MeasureUSImpl(n, u); return new MeasureUSImpl(n, u); return new MeasureMetricImpl(n,u); return new MeasureMetricImpl(n,u); } public String getVolumeDefaultUnit() { public String getVolumeDefaultUnit() { return null;} return null;} public Measure getWeight(Number n, String u) public Measure getWeight(Number n, String u) {return null;} {return null;} public String getWeightDefaultUnit(){return null;} public String getWeightDefaultUnit(){return null;}}