Top Banner
REFACTORING VERS LES DESIGN PATTERNS Améliorer son architecture par les design patterns
22
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Refactoring vers les design patterns   pyxis v2

REFACTORING VERS

LES DESIGN

PATTERNS

Améliorer son

architecture

par les design

patterns

Page 2: Refactoring vers les design patterns   pyxis v2

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

Page 3: Refactoring vers les design patterns   pyxis v2

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

Page 4: Refactoring vers les design patterns   pyxis v2

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

Page 5: Refactoring vers les design patterns   pyxis v2

Contexte

DESIGN PATTERNS (PATRONS DE CONCEPTION)

Problèmes connus

Bonnespratiques

Solutions éprouvées

Page 6: Refactoring vers les design patterns   pyxis v2

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

Page 7: Refactoring vers les design patterns   pyxis v2

DemoÉTAT INITIAL

Page 8: Refactoring vers les design patterns   pyxis v2

PROBLÈME

Extensibilité

Page 9: Refactoring vers les design patterns   pyxis v2

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

Page 10: Refactoring vers les design patterns   pyxis v2

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

Page 11: Refactoring vers les design patterns   pyxis v2

Demo

UTILISATION DU

STRATEGY PATTERN

Page 12: Refactoring vers les design patterns   pyxis v2

PROBLÈME

Fonctionnalités

transversales

Page 13: Refactoring vers les design patterns   pyxis v2

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

Page 14: Refactoring vers les design patterns   pyxis v2

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

Page 15: Refactoring vers les design patterns   pyxis v2

Demo

UTILISATION DU

DECORATOR

PATTERN

Page 16: Refactoring vers les design patterns   pyxis v2

PROBLÈME

Construction

complexe d’objets

Page 17: Refactoring vers les design patterns   pyxis v2

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

Page 18: Refactoring vers les design patterns   pyxis v2

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

Page 19: Refactoring vers les design patterns   pyxis v2

Demo

UTILISATION DU

FACTORY PATTERN

Page 20: Refactoring vers les design patterns   pyxis v2

0

1

0 1 2 3 4 5 6

Locale

COMPLEXITÉC

om

ple

xité

Niveaux d’abstraction

Page 21: Refactoring vers les design patterns   pyxis v2

0

1

0 1 2 3 4 5 6

Locale

Globale

COMPLEXITÉC

om

ple

xité

Niveaux d’abstraction

Zone de confort

Page 22: Refactoring vers les design patterns   pyxis v2

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

[email protected]

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