État (patron de conception)

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Page d'aide sur l'homonymie Pour les articles homonymes, voir État (homonymie).

Introduction[modifier | modifier le code]

La technique du patron de conception (design pattern en anglais), ou encore modèle de conception, comportemental "État" utilisé en génie logiciel est utilisé entre autres lorsqu'il est souhaité pouvoir changer le comportement d'un objet sans pour autant en changer l'instance. Ce type de comportement généralise les automates à états qui sont souvent utilisés comme intelligences artificielles simples.

Principe Général[modifier | modifier le code]

Le patron "État" propose deux classes principales :

  1. la classe État, qui définit l'abstraction des comportements du patron
  2. la classe Contexte, qui s'occupe de l'interfaçage du patron avec le reste de son contexte (l'application).

La classe État permet via ses spécialisations de créer et gérer dynamiquement les comportements dont l'application aura besoin. La classe Contexte qui permet éventuellement à l'application de choisir le comportement à mettre en œuvre et surtout d'orchestrer l'exécution des comportements. Il est à noter que la classe Contexte n'a pas l'exclusivité du choix de comportements. Il est en effet possible d'automatiser le changement d'état à la fin de l'exécution de l'état actif. Cela permet le développement d'automates à états à développement rapide (la spécialisation permettant de récupérer le comportement d'un état parent en lui ajoutant le service qui lui manquait). À grande échelle un automate à état peut résoudre des problèmes très complexes ce qui les hisse au rang d'intelligences artificielles simples, notamment très utilisés dans les jeux vidéo (stratégie, cartes, plateaux, ...) et sont un bon compromis entre la formule mathématique et les réseaux de neurones pour bon nombre d'applications industrielles.

La classe Contexte garde un lien vers une classe abstraite État. Chaque comportement est une spécialisation de cet État. Lorsque l'instance de la classe État change, le comportement du patron change. Ce patron permet donc à la classe Contexte de changer de comportement dynamiquement sans changer ni d'instance ni d'interface.

Structure[modifier | modifier le code]

Patron de conception Etat en UML
Patron de conception Etat en LePUS3