17.12.2012 Views

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Patterns fonctionnels<br />

<strong>Programmation</strong> orientée objet<br />

CHAPITRE 14<br />

Les patterns fonctionnels permettent de mettre en place des modèles d’exécution du<br />

programme, c’est-à-dire de modéliser les relations qui se mettent en place entre<br />

objets lorsqu’ils coopèrent pour exécuter une tâche.<br />

Il existe énormément de patterns fonctionnels et les variantes sont nombreuses. On<br />

ne présente ici que quelques DP majeurs :<br />

Le pattern Visitor, qui permet de manipuler des instances d’objets depuis un<br />

algorithme récursif ;<br />

Observer, qui met en place un système de notification, où des objets sont prévenus<br />

d’un événement sur un objet donné ;<br />

Memento, un système de mémorisation de l’état d’un objet ;<br />

Chain of responsibility, qui met en place une chaîne d’objets, utilisée pour résoudre<br />

un problème : le premier maillon de la chaîne qui sait résoudre le problème<br />

prend la main ;<br />

State, qui permet de changer dynamiquement le type d’un objet.<br />

Visitor<br />

Figure 14–2<br />

Schéma UML de Visitor<br />

Le pattern Visitor permet d’ajouter une méthode récursive à une classe dans une<br />

autre classe spécialisée. Cette deuxième classe, appelée visiteur, implémente une<br />

extension qui manipule la première classe.<br />

Visitor<br />

class Visitor(object):<br />

def __call__(self, visited):<br />

raise NotImplementedError<br />

class Visited(object):<br />

def accept(self, visitor):<br />

505

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!