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.

Refactoring vers les design patterns pyxis v2

751 views

Published on

Refactoring vers les design patterns. Comment introduire les patterns comme "command", "decorator" et "factory".

Published in: Software
  • Be the first to comment

Refactoring vers les design patterns pyxis v2

  1. 1. REFACTORING VERS LES DESIGN PATTERNS Améliorer son architecture par les design patterns
  2. 2.  Design est non-déterministe  Ce n’est pas un processus répétable qui garanti un résultat prédictible  Les techniques de design sont guidé par des heuristiques  Intuitive  Plusieurs facteurs l’influence  Le design est un processus itératif  Processus à évolution lente  Compromis et priorités  Principe d’essais et erreurs LES DÉFIS DU DESIGN
  3. 3.  Abstraction claire  Designer de façon modulaire  Favoriser une forte cohésion  Séparation des préoccupations  Designer en strate ou en oignons  Limiter le nombre d’abstractions par niveau  Distribution des responsabilités balancée  S’inspirer des objets de la vie  Limitation du couplage  Garder le minimum d’interconnections  Rendre les contrats explicites  Encapsuler les détails d’implémentation LES HEURISTIQUES FONDAMENTALES
  4. 4.  Choix de solutions simples  Pas de partie en trop (utiliser le TDD)  Éviter les défaillances  Design pour la testabilité  Identification des zones à haut risque de changement  Extensibilité, Plugins, IOC, DI  Utilisation de solutions éprouvées  Design Patterns LES HEURISTIQUES FONDAMENTALES
  5. 5. Contexte DESIGN PATTERNS(PATRONS DE CONCEPTION) Problèmes connus Bonnes pratiques Solutions éprouvées
  6. 6. Creational •Factory Method •Abstract Factory •Prototype •Singleton Structural •Adapter •Adapter •Bridge •Composite •Decorator •Facade •Proxy Behavioral •Interpreter •Template Method •Chain of responsibility •Command •Iterator •Mediator •Memento •Flyweight •Observer •State •Strategy •Visitor LES DESIGN PATTERNS Class Object
  7. 7. DemoÉTAT INITIAL
  8. 8. PROBLÈME Extensibilité
  9. 9. Dans ce patron une famille d'algorithmes sont encapsulés de manière à être interchangeables. Les algorithmes peuvent changer indépendamment de l'application qui s'en sert. UTILISER UNE STRATÉGIE INTERCHANGER UN ALGORITHME
  10. 10. Dans ce patron une famille d'algorithmes sont encapsulés de manière à être interchangeables. Les algorithmes peuvent changer indépendamment de l'application qui s'en sert. UTILISER UNE STRATÉGIE INTERCHANGER UN ALGORITHME
  11. 11. Demo UTILISATION DU STRATEGY PATTERN
  12. 12. PROBLÈME Fonctionnalités transversales
  13. 13. Ce patron permet d'attacher dynamiquement des responsabilités à un objet. C’est une alternative à l'héritage UTILISER LE DÉCORATEUR POUR ÉVITER L’EXPLOSION DE HIÉRARCHIE
  14. 14. Ce patron permet d'attacher dynamiquement des responsabilités à un objet. C’est une alternative à l'héritage UTILISER LE DÉCORATEUR POUR ÉVITER L’EXPLOSION DE HIÉRARCHIE
  15. 15. Demo UTILISATION DU DECORATOR PATTERN
  16. 16. PROBLÈME Construction complexe d’objets
  17. 17. Ce patron fournit une interface pour créer des objets sans spécifier la classe concrète. La méthode s’occupe de la création de l’instance. UTILISER UNE FACTORY POUR DÉLÉGUER LA CRÉATION D’OBJETS
  18. 18. Ce patron fournit une interface pour créer des objets sans spécifier la classe concrète. La méthode s’occupe de la création de l’instance. UTILISER UNE FACTORY METHOD POUR DÉLÉGUER LA CRÉATION D’OBJETS
  19. 19. Demo UTILISATION DU FACTORY PATTERN
  20. 20. 0 1 0 1 2 3 4 5 6 Locale COMPLEXITÉComplexité Niveaux d’abstraction
  21. 21. 0 1 0 1 2 3 4 5 6 Locale Globale COMPLEXITÉComplexité Niveaux d’abstraction Zone de confort
  22. 22.  A retenir  Le design est un art plus qu’une science  Les patterns sont là pour nous aider  Faire attention à la complexité  Eric De Carufel  eric@decarufel.net  http://blog.decarufel.net  http://pyxis-tech.com  Sources : https://bitbucket.org/decarufe/refactortopatterns  Questions? 23 CONCLUSION Est à la recherche de dévelopeurs Visitez la section carrière sur pyxis-tech.com

×