状态设计模式实现查询

时间:2014-02-28 20:11:57

标签: design-patterns

我正在开发一个应用程序,它从数据库中获取n个PENDING记录并处理记录。处理时的状态是“正在处理”,并将记录标记为“错误”或“成功”。 如果成功处理了所有记录,则需要将状态更新为数据库中的“SUCCESS”。 如果某些记录无法处理,我需要将这些记录更新为“ERROR”并在errorlog表中插入错误原因,同时将剩余的更新为成功。 我正在考虑使用State设计模式来实现它。

我的问题 - 我知道如果我一次处理一条记录,使用State设计模式实现它是有意义的。如果处理批量记录,用State模式实现是否有意义。 如果没有,还有其他选择吗?

1 个答案:

答案 0 :(得分:1)

这实际上不是州模式的好例子。状态是为了让对象根据其所处的状态容易地表现出来。对于要应用的状态,您希望拥有一个实现协议的对象,但是根据它所处的状态以不同的方式实现它。他们使用的示例在四人帮中是一个套接字类。我最近在一个如果设备正在使用的情况下使用State,我想让它处理某些基本功能,而不是它。所以在这种情况下,你要做的是你实现两个状态处理程序(实现相同的接口),你只需在事件到达时交换它们,说设备进入或不使用。

对于您的情况,您只需要模拟给定对象的状态。你应该阅读一下有关状态机的信息,随着反应式编程的兴起,状态机正在卷土重来。

找到了this gentle introduction,这非常好。