如何在对象中实现工作流程

时间:2012-01-16 10:29:48

标签: c# .net oop

我有一个对象代表存储在关系数据库中的一些文档(O / R映射)。该文档有一个状态字段,用于标识其状态。每个状态(即条目,等待批准,发送,付费等......)都有自己的验证规则和要求。

我想知道这种工作流程的正确OO实现是什么。最简单的方法是放置一堆if语句,如

if(status == something || status == something else)       检查日期是否可以改变();

但在复杂的情况下,这变得非常难以阅读。

良好设计的建议?

2 个答案:

答案 0 :(得分:2)

查看Strategy Pattern。对于每个可能的状态,您将创建一个实现要执行的步骤的类。

也许您希望将它与构建正确策略对象的Factory结合使用,具体取决于从DB读取时的doucment状态。

答案 1 :(得分:1)

我认为您需要查看Windows Workflow Foundation。它是.NET的一部分,它使您能够相对容易地创建工作流。