factory design patterns n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Factory Design Patterns PowerPoint Presentation
Download Presentation
Factory Design Patterns

Loading in 2 Seconds...

play fullscreen
1 / 13

Factory Design Patterns - PowerPoint PPT Presentation


  • 124 Views
  • Uploaded on

Factory Design Patterns. Contents. Factory patterns: principes The Factory Method pattern The Abstract Factory pattern “Design patterns are recurring solutions to design problems you see over and over.” [Smalltalk Companion]. But et portée (1). But : que fait un patron ?

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Factory Design Patterns' - rock


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
contents
Contents
  • Factory patterns: principes
  • The Factory Method pattern
  • The Abstract Factory pattern

“Design patterns are recurring solutions to design problems you see over and over.”

[Smalltalk Companion]

Factory Design Patterns

but et port e 1
But et portée (1)

But:que fait un patron ?

  • Les patrons d’instanciation s’intéressent au processus de création d’objets

Portée : à quel niveau s’applique un patron? Au niveau des classes ou des objets?

Factory Design Patterns

but et port e 2
But et portée (2)
  • Les patrons au niveau des classes s’occupent des relations entre les classes et les sous-classes. Ces relations sont fixées statiquement à la compilation.
    • Les patrons de création au niveau des classes délèguent une partie de la création des objets aux sous-classes.
  • Les patrons au niveau des objets s’occupent des relations entre les objets, lesquels sont plus dynamiques et peuvent être modifiées à l’exécution
    • Les patrons de création au niveau des objets délèguent la création à d’autres objets.
  • Les patrons de “factory” permettent de configurer un système avec des objets qui peuvent varier notablement en termes de structure et de fonctions

Factory Design Patterns

factory pattern principes 1
Factory pattern: principes (1)
  • La création d’objets avec des comportements spécifiques demande plus que la simple instanciation d’une classe
  • La plus grande barrière au changement réside dans l’encodage direct (“hard-coding”) des classes qui peuvent être instanciées
    • Encoder directement un nombre fixe de comportements

Définir un plus petit ensemble de comportements

fondamentaux qui peuvent être composés

Factory Design Patterns

imprimer la trace d un programme
Imprimer la trace d’un programme

public interface Trace {      // turn on and off debugging      public void setDebug( boolean debug );      // write out a debug message      public void debug( String message );      // write out an error message      public void error( String message );}

Factory Design Patterns

imprimer la trace dans un fichier
Imprimer la trace dans un fichier

public class FileTrace implements Trace {      private java.io.PrintWriter pw;      private boolean debug;      public FileTrace() throws java.io.IOException {

   // a real FileTrace would need to obtain the filename somewhere   // for the example I'll hardcode it

         pw = new java.io.PrintWriter(

new java.io.FileWriter( "c:\trace.log" ) );      }      public void setDebug( boolean debug ) {            this.debug = debug;      }      public void debug( String message ) {            if( debug ) {  // only print if debug is true                  pw.println( "DEBUG: " + message );                  pw.flush();            }      }      public void error( String message ) {            // always print out errors            pw.println( "ERROR: " + message );            pw.flush();      }}

Factory Design Patterns

imprimer la trace sur la console
Imprimer la trace sur la console

public class SystemTrace implements Trace {      private boolean debug;      public void setDebug( boolean debug ) {            this.debug = debug;      }      public void debug( String message ) {            if( debug ) {  

//only print if debug is true              System.out.println( "DEBUG: " + message);            }      }

      public void error( String message ) {            // always print out errors            System.out.println( "ERROR: " + message );      }}

Factory Design Patterns

pour utiliser l un ou l autre syst me
Pour utiliser l’un ou l’autre système

//... some code ...SystemTrace log = new SystemTrace();

//... code ...log.debug( "entering loog" );// ... etc ...

Factory Design Patterns

factory pattern principes 2
Factory pattern: principes (2)
  • Les patrons de création rendent le design
    • plus flexible
    • pas nécessairement plus petit
  • Les patrons de création fournissent diverses manières
    • de supprimer les références explicites aux classes concrètes
    • dans la partie du code où doit se faire l’instanciation

Factory Design Patterns

factory pattern principes 3
Factory pattern: Principes (3)
  • Créer une abstraction qui décide quelle classe, parmi celles qui sont acceptables, il faut rendre.
    • Par la suite, il suffit d’invoquer les méthodes de l’instance de cette classe sans connaître de quelle classe il s’agit exactement.
  • Un patron simple de “factory” rend une instance d’une des nombreuses classes acceptables en fonction des données qui lui sont fournies.
  • En général,
    • toutes les classes qui sont rendues possèdent un ancêtre commun et des méthodes communes,
    • toutefois chacune accomplit ses tâches différemment et est optimisée pour différentes sortes de données

Factory Design Patterns

factory pattern principes 4
Factory pattern: Principes (4)
  • La classe Factory décide de la sous-classe (Child1 ou Child2) qui sera instanciée

Factory Design Patterns

factory pattern exemple
Factory pattern: exemple

publicclass Parent

{

protected String first;

protected String second;

}

public class Child1 extends Parent {}

public class Child2 extends Parent {}

public class ParentFactory {

public Parent getParent(String argument)

{

if (argument.equals(…))

return new Child1(argument);

else

return new Child2(argument);

} }

Factory Design Patterns