Question

J'ai récemment entendu parler de la boost::statechart bibliothèque (machines à états finis) et j'ai adoré le concept.

C # a-t-il un mécanisme similaire? Ou peut-il être mis en œuvre en utilisant un modèle de conception spécifique?

Était-ce utile?

La solution

Oui, C # a les blocs itérateurs qui sont des machines à états générées par le compilateur.

Si vous souhaitez implémenter votre propre machine d'état, vous pouvez créer des implémentations personnalisées des interfaces IEnumerable<T> et IEnumerator<T>.

Ces deux approches mettent en évidence l'implémentation du modèle d'itérateur par le framework .NET.

Autres conseils

.NET 4 Update 1 le prend désormais en charge dans la classe suivante: System.Activities.Statements.StateMachine

Voici un tutoriel sur son utilisation . Voici un atelier pratique .

Fondation de flux de travail (.NET 3.0) possède un flux de travail de la machine à états. La version 4.0 n'a pas exactement la même chose à l'heure actuelle, mais vous pouvez certainement créer un flux de travail de machine à états à l'aide de la version 4.0.

Je gère un projet open-source qui implémente (entre autres choses) une machine à états finis générique pour .NET. Il est construit sur le QuickGraph , ce qui vous permet d'obtenir gratuitement de nombreux algorithmes d'analyse de graphes.

Voir cette page pour plus d'informations sur le projet, et plus précisément " Jolt.Automata: Machines à états finis " pour plus d'informations sur cette fonctionnalité.

Consultez Stateless - > http://code.google.com/p/stateless/ . C’est une alternative légère au WWF plus lourd.

Voici quelques articles de l'auteur de l'outil:

Machines à états dans les modèles de domaine

Déclencheurs paramétrés et états réentrants sans état

Les éléments qui se rapprochent des FSM sont les flux de travail dans .NET 3.5. Toutefois, les flux de travail ne sont pas exactement des FSM.

L'utilisation des FSM permet de les créer explicitement dans votre code, ce qui réduit les risques de création de bogues. En outre, bien sûr, certains systèmes sont des FSM par nature, il est donc plus naturel de les coder comme suit.

Windows Workflow Foundation (WF) faisant partie de la bibliothèque de classes de base dans les versions 3.0 et 3.5 inclut une conception de flux de travail de machine à états permettant de gérer les machines à états de vos applications.

Ils ont complètement réécrit le flux de travail pour la prochaine version 4.0, et les nouvelles classes WF 4.0 ne supportent pas nativement les machines à états, mais toutes les classes 3.0 / 3.5 le sont toujours complètement sous la version 4.0.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top