2014-02-28 91 views
1

我正在开发一个应用程序,它从数据库中获取PENDING记录的数量并处理记录。处理过程中的状态是“PROCESSING”,并将记录标记为“ERROR”或“SUCCESS”。 如果所有记录都成功处理,则状态需要更新为数据库中的“SUCCESS”。 如果某些记录未能处理,我需要将它们更新为“错误”,并在错误日志表中插入错误原因,同时将剩余的更新成功。 我正在考虑使用状态设计模式来实现这一点。状态设计模式执行查询

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

+1

所有记录是否相同,处理相同?你描述的是存储状态,而不是状态模式。 – Wain

+0

是的,所有记录的处理过程都是相同的。如果某些记录被识别为错误,那么我需要调用与成功不同的SP。此外,我有一个状态“PROCESSINGERROR”,它重试处理错误记录。我在考虑使用状态模式的原因是因为很容易确定每个状态发生了什么。这是否有正确的设计意义? – user1399653

回答

1

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

对于你的情况,你只需要模拟给定对象的状态。您应该了解一些关于状态机的信息,这些状态机现在正在随着反应式编程的兴起而复苏。

发现this gentle introduction,这是相当不错的。