8得票2回答
给我一个实际的、非平凡的使用状态模式的例子。

我正在寻找一个使用状态设计模式解决或简化有趣或复杂状态转换的示例。有很多三个或四个简单状态的示例。但是,有没有来自实际项目的代码,其中包含子状态和超过一小部分的转换?这种代码实际上激励了模式的使用。奖励指向代码的指针!

17得票3回答
在状态模式中,谁定义状态转换?

我了解到 状态模式(State pattern) 可以用于建模根据不同状态而变化行为的对象,而Context所具有的不同状态则被封装在代表State接口的具体类中。然而,我并不清楚这个模式中状态的转换是如何发生的。是各个State知道并决定了下一个状态,还是由Context决定其下一个状态?

16得票2回答
使用Entity Framework持久化状态模式

我目前正在开发一个MVC 3项目。我已经将我的关注点分离,例如Core、Repository、UI、Services等。我已经实现了Repository、UnitOfWork和最重要的State模式。 我正在使用Entity Framework 4.3来持久化我的数据,并遇到了一个非常恼人的...

65得票8回答
如何在Java中实现有限状态机(FSM)

我有一些工作需要做,需要你的帮助。我们想要实现一个FSM - 有限状态机,用于识别字符序列(例如:A、B、C、A、C),并判断是否接受该序列。 我们打算实现三个类:State、Event和Machine。 State类表示FSM中的节点,我们打算使用State设计模式来实现它,每个节点将扩展...

7得票1回答
状态模式和领域驱动设计

我们经常使用简单的枚举来表示实体的状态。当我们引入在很大程度上依赖于状态的行为或者状态转移必须遵守某些业务规则时,问题就出现了。 以下面的例子(使用枚举来表示状态)为例: public class Vacancy { private VacancyState currentSta...

9得票3回答
C#中的状态模式与先前状态

我对C#中的状态模式实现不熟悉,您能提供一些相关信息吗? 我正在使用状态模式重构一个包含5个状态的状态机。目前只能通过向前或向后遍历状态来操作,例如从状态1需要经过状态2、3和4才能最终到达状态5。 我可以通过进行以下操作向前移动: mainclass.State = ne...

12得票1回答
如何对状态机进行单元测试?

假设我有一个 Order 类,它可以处于三种不同的状态: CheckedState, PaidState 和 OrderedState。 状态机将使用标准状态设计模式(GoF)来实现。 通常如何对此进行单元测试? 您是否为每个状态类(CheckStateFixture,PaidFixtur...

8得票2回答
用状态/策略模式替换if/else逻辑

我已经阅读了以前有关Java中替换条件逻辑(如IF / ELSE)的Stack Exchange,例如状态/策略模式,但我不确定我的情况是否适合这种替换。以下是我查看的两个相关问题 - Java中的if语句列表 和 将许多“if else”语句转换为更简洁的方法 我基本上正在编写一个文件下载...

18得票5回答
如何持久化实现状态模式的对象?

我对状态模式比较陌生,也找不到一个合适的例子来将对象的不同状态保存到数据库中(在我这里是SQL Server)。情况类似于以下文章中描述的示例,但我没有找到适用的解决方案来将状态持久化到数据库中。你们能否推荐一个链接或者给出一个例子? C#中状态模式用法和示例 此外:如何在运行时枚举所有不...

47得票8回答
如何正确使用状态模式?

我在编程经验中遇到了几种状态模式的实现,并且自己也做了一些。我看到它们被用于各种场景(主要是UI和解析)。问题在于在快速开发的压力下,它们都变成了难以维护和理解的代码块。我正在考虑重构其中之一,但我在网上找不到好的资源。有许多简单的状态模式示例在线上,但我需要更深入的资源。 所以我想找: ...