Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Design Patterns: Builder pattern (Le monteur)

2,444 views

Published on

Builder pattern (patron de conception Monteur)

Radhouene Rouached

***Public & reusable :
https://prezi.com/aszeg8w0jqca/pattern-builder/

***
https://www.linkedin.com/profile/view?id=244758269

Published in: Technology
  • Login to see the comments

Design Patterns: Builder pattern (Le monteur)

  1. 1. Builder Parlmn »nu m. .- n m m an
  2. 2. Builder Pattern Radhotlene Rouaclwerl
  3. 3. Plan 1. Introduction 2. Qu'est ce que le Pattern Monteur 3. Pourquoi un Monteur 4. Implémentation 5. Avantages 6. FAQ
  4. 4. 1. introduction La modélisation d'un systëme complexe : Incrémentale Adaptative Progressive A fin d'éviter : 'A : i Problëmes Iiés a la spécification 1' : i Extensibilité l' : I Faire des retours arriëre
  5. 5. 2. Qu'est ce que le Pattern Monteur "Le but du pattern Builder est d'abstraire la Construction d'objets complexes de Ieur implantation de sorte qu'un client puisse créer ces objets complexes sans devoir se préoccuper des différences d'implantation. " Pattern Builder : [if créer des objets complexes vi indépendance des constituants de | 'objet i contröle du processus de Construction
  6. 6. 3. Pourquoi un Monteur Pmhlëme aiu-un: nix-i immun min diuihl. llnl z; muni- pin-inn nuiminru du naimerdiniihuiuvnwndwnuhnn-u mnaeumuiiwrçsweruhvumuælwe - Monteur: Classe numrene concurrent le produk - Momeurcomra : Implémerulim de la close Monteur Asemhlqe dillemma: pnnlu du produk - Direcleur: conslruclim de hmm - Prodult Lbblel en en cous de eonsuuulon u. « . - u. 0+ i Solution wIuneanu-nmuuIuuuuun-m Bwrarwlasuellmrlenvusuuhlsiuác
  7. 7. Problëme A Une Classe nécessite plusieurs operations de Création et d'initialisation pour Chaque attribut dans un ordre prédéfini par les operations. Chaque type d'instanCe nécessite différentes valeurs d'attribut.
  8. 8. Solution Utiliser une Combinaison de directeur et de monteur pour encapsuler et définir le processus dans l'ordre prédéfini. QTEQÅLLâLFÆ
  9. 9. - Monteur : Classe abstraite Contenant le produit - MonteurConCret : Implémentation de la Classe monteur Assemblage différentes parties du produit - Directeur : Construction de | 'objet - Produit L'objet est en Cours de Construction Æ T A ConcreteBuilder I I beach nem rn slructue k milde« Buvlæaru) +BuildPan0 +GelResuI1() Figure lzstructure du pattern monteur
  10. 10. 4. Implémentation On suppose qu'une entreprise x veut administrer son trafic réseau . Aprés
  11. 11. Avant S Création de Chaque Classe de façon indépendante ReseauFilaire Räealâüsñ' l › DebitFilaire : double - Dëbitsênslii' _ ? °°9b'ê . Equipementpnaire ; sving - EqunpementssnsFil : String - MsxPorteFilaire : int gMfFfmêsafFi' 3""
  12. 12. namespace BuilderPattern f class ReseauSansFiI f private float debitReseauSansFiI; private string supportReseauSansFiI; private int maxPorteReseauSansFil; public ReseauSansFiKfloat debit. string support, int maxPorte) I this. debitReseauSansFil = debit; this. supportReseauSansFil = support; this. maxPorteReseauSansFiI = maxPorte; l public float Name i geti return debitReseauSansFil; ) set f debitReseauSansFiI = value; ]› l public string Support t getf return supportReseauSansFiI; ) set f supportReseauSansFiI = value; 1 I public int MaxPorte I getf return maxPorteReseauSansFil; ] set f maxPorteReseauSansFiI = value; ) l public void Affichageo I Console. Write("Debit : " + debitReseauSansFil + " Support : " + supportReseausansFil + " Max portée : " + maxPorteReseauSansFil); I
  13. 13. namespace BuilderPattern I class ReseauFiliaire t private float debitReseauFilaire; private string supportReseauFilaire; private int maxPorteReseauFiIaire; public ReseauFiIiaire(fIoat debit, string support. int maxPorte) l this. debitReseauFi| aire = debit; this. supportReseauFi| aire = support; this. maxPorteReseauFilaire = maxPorte; l public float Debit l get I return debitReseauFilaire; ] set [ debitReseauFilaire = value; 1 l public string Support l get [ return supportReseauFilaire; ] set [ supportReseauFiIaire = value; 1 l public int MaxPorte I get f return maxPorteReseauFi| aire; 1 set f maxPorteReseauFiIaire = value; 1 I public void Aftichageof Cons0Ie. Write("Debit : " + debitReseauFilaire + " Suppon : " + supportReseauFiIaire + " Max portée : " + maxPorteReseauFilairey I I I
  14. 14. namespace BuilderPattern f class Programme I public static void Main(string| ] args) f ReseauFiliaire rf = new ReseauFiIiaire(12.2F, "fibres",150); ReseauSansFi| rsf = new ReseauSansFiI(50.0F, 120); rf. Affichage(); ConsoIe. WriteLine(); C 0 n S ole I L I n e C '*****************************************ir******' ') - rsf. AffiChage(); I ConsoIe. ReadLine();
  15. 15. li! ;sr- til Structure - MonteurReseau - Classe abstraite pour la Création de | 'objet - Administrateur - Construire un objet a partir du monteurReseau - MonteurSansFi| & MonteurFilaire - Assembler les parties du reseau deja detinit par le monteur reseau - Programme - Représente | 'objet complexe en cours de Construction
  16. 16. Admiriigsteur ReseauFilsire l- Debit : double - Equipement : String - NlsxPorte : int Monteuieseau ; ogramme Resea uSansFile - Debit : double - Equipernent : String - NlaxPocLe : int
  17. 17. Structu re - MonteurReseau - Classe abstraite pour la Création de | 'objet - Administrateur - Construire un objet a partir du monteurReseau - MonteurSansFi| & MonteurFilaire - Assembler les parties du reseau deja definit par le monteur reseau - Programme - Représente | 'objet complexe en Cours de Construction
  18. 18. 5. Avantages D6 Robustesse . ' s Changement de paramëtres n'a pas d'impact sur les Constructions. [få Lisibilité g r Construction sommaire v ' a Création facile vu que la sémantique est Iiée aux ' méthodes Chainées [lä Usage v a Contröle de validité v ' - flexible
  19. 19. 6. FAQ Difference entre Builder & Abstract factory ? Le pattern Monteur se concentre sur la Création d'un objet complexe étape par étape. AbstraCt factory met en valeur une familie d'objets produit(simple ou complexe). Difference entre Builder & Heritage ? Création d'un objet complexe qui nécessite plusieurs étapes. Instancier un objet incomplet engendre des futurs problémes D'ou Bibliographie a Netographle Instancier un objet Iorsqu'i| sera Complet 1. Laurent DehrnuwenDesign pour c« . Les z: mndêles de conceplion . che' n r. pige 54. 2. al. I NÅ
  20. 20. Bibliographie & Netographie 1. Laurent Debrauwer, Design Patterns pour C# - Les 23 modëles de Conception , cité ala page 54. 2. ccznsultuleoállww
  21. 21. Merci pour votre attention E . s > E Abstract 2 ë E Behavio E F* å Singleto -g o Template g Interpreter g -n 9 m 9,, æ W ° (l) '° '< ct L o Bridge m: Creational Memento å; . _ _ _ -. - o °" H-ä å Visitor 'å aglleumx Så ë--o- a a n S - cu 'U G) I < 9- f? O K

×