Skip to content

Latest commit

 

History

History
60 lines (50 loc) · 2.52 KB

4.intro.md

File metadata and controls

60 lines (50 loc) · 2.52 KB

Design Patterns

Rappel des fondations de la POO

  • Abstraction
  • Encapsulation
  • Protection des attributs de l’objet
  • Polymorphisme
  • Héritage

A quoi ça sert ?

  • Solutions «prototypiques» à des problèmes objets
  • Réutilisable à des problèmes récurrents Peu d’algorithmique, plus des schéma orientés-objet
  • Façons d’organiser le code pour augmenter
    • Flexibilité
    • Maintenabilité
    • Extensibilité
    • Configurabilité
    • ...
  • Le plus souvent basé sur des interfaces et abstractions

Intérêt

  • Un vocabulaire commun et puissant
  • Les patterns aident à concevoir facilement des systèmes
    • Réutilisables: Responsabilités isolées, dépendances maitrisées
    • Extensibles: Ouverts aux enrichissements futurs
    • Limiter la modification de l’existant
    • Maintenables par faible couplage
  • Les patterns reflètent l’expérience de développeurs objets
    • Solutions éprouvées et solides
  • Les patterns ne sont pas du code mais des cadres de solutions générales à adapter à son problème particulier
  • Les patterns aident à maîtriser les changements
    • Les solutions plus triviales sont souvent moins extensibles
  • Attention à l’overkill! Utilisez les patterns intelligemment

Généralités

  • En 1995, quatre experts de l'orienté objet publient un livre où ils proposent des solutions génériques à des problèmes récurrents en développement logiciel. Ils ont en effet constaté que des modèles d'architecture répondent de manière identique à des problèmes semblables (constatation qui se généralise à d'autre do- maines que l'informatique : cuisine, architecture, mécanique. . .). Les solutions que les experts ont proposées se nomment patrons de conception ou design patterns (le terme anglais est souvent conservé).

  • 23 patrons de conception sont proposés par les créateurs du concept qui les ont organisés en trois catégories. Ces trois catégories sont toujours d'actualité aujourd'hui :

  • 5 Patterns créateurs

    • Ciblent la construction des objets («aider» new, clone)
      • Patterns Factory, AbstractFactory, Singleton...
  • 7 Patterns structuraux

    • Travaillent sur des aspects statiques, à «l’extérieur» des classes (notamment extensibilité)
      • Patterns Façade, Adapter, Decorator, Proxy, Composite ...
  • 11 Patterns comportementaux

    • Travaillent sur des aspects dynamiques, à « l’intérieur» des classes (parfois même des instances)
      • Patterns Strategy, Iterator, Observer, Visitor

carte des patterns