A finite state machine is implemented by encapsulating the portions of a
state table, which are associated with each state in a state object. Each
state object is instantiated when the associated state is entered and
destroyed when the state is exited. Since memory is only allocated at
runtime when an object is instantiated and in existence, the amount of
memory required to implement the state table is minimized. The state class
from which the state object is instantiated can be subclassed. In
accordance with normal object-oriented class design, a subclass inherits
the state table of its parent class. However, the subclass allows table
rows to be added and table rows present in the parent class to be
overwritten in the subclass. The state table in each state class includes
methods that are called when the class is created and destroyed.
Une machine d'état fini est mise en application en encapsulant les parties d'une table d'état, qui sont associées à chaque état dans un objet d'état. Chaque objet d'état est instantiated quand l'état associé est écrit et détruit quand l'état est sorti. Puisque de la mémoire est seulement assignée au temps d'exécution où un objet est instantiated et en existence, la quantité de mémoire exigée pour mettre en application la table d'état est réduite au minimum. La classe d'état dont l'objet d'état est instantiated peut être subclassed. Selon la conception orientée objectivement normale de classe, une sous-classe hérite de la table d'état de sa classe de parent. Cependant, la sous-classe permet à des rangées de table d'être ajoutées et des rangées de table actuelles dans le parent classent pour être recouvertes dans la sous-classe. La table d'état dans chaque classe d'état inclut les méthodes qui s'appellent quand la classe est créée et détruite.