2010-06-16 42 views
1

我正在考慮在Java或C++之類的OOP語言中使用有限狀態自動機來實現程序。在OOP中實現有限狀態自動機

對於良好的軟件設計,您認爲以可管理的可用狀態實現此目標的最佳方式是什麼?

爲每個州實施自己的班級是否好? 如果是,如何做兩國之間的橋樑?

感謝您的任何評論!

+1

您可能想看看:http://www.boost.org/doc/libs/1_43_0/libs/statechart/doc/index.html – AraK 2010-06-16 12:42:41

+0

狀態自動機如何在分析工具中實現,某些面向對象系統使用虛擬調度,或者使用靜態調度和代碼生成的生產質量系統差別很大。你不可能得到一些東西,它允許跟蹤和記錄你想要在一個模擬器中調試狀態機,並且它將以千兆速度運行一個協議 - 實現機器的最佳方式根據你希望它能夠這樣做。 – 2010-06-16 13:13:09

回答

2

這只是爲了展示你的編程能力,或者是爲了實際的項目等嗎?在這兩種情況下,它取決於你想要什麼樣的狀態機: - 是它在某種工作流程 的管理任務 - 是它來確定應用程序流狀態 - 是它的業務規則引擎等

在在一個項目的情況下,我會建議,根據你的目標用途是什麼,你在這個域中尋找庫。 Java例如擁有MANY MANY庫,用於工作流程/業務流程以及大量規則引擎(Drools讓人想起蝙蝠的權利,雖然它是一個複雜的龐然大物)

+0

目前更是一個利益的準備......在我的學習期間,我們在理論上(非常徹底)有自動機,在這個時候我不明白,他們可能會有什麼好處。現在我正在考慮使用這些編寫一個(不是很大)的Web項目 – poeschlorn 2010-06-16 12:58:04

0

dk.brics.automaton庫是Java中FSA的良好實現。它建立在性能的基礎上,所以它在一些OOP原則中進行交易以提高速度,但我建議你看看它。