我有一个对象代表存储在关系数据库中的一些文档(O / R映射)。该文档有一个状态字段,用于标识其状态。每个状态(即条目,等待批准,发送,付费等......)都有自己的验证规则和要求。
我想知道这种工作流程的正确OO实现是什么。最简单的方法是放置一堆if语句,如
if(status == something || status == something else) 检查日期是否可以改变();
但在复杂的情况下,这变得非常难以阅读。
良好设计的建议?
答案 0 :(得分:2)
查看Strategy Pattern
。对于每个可能的状态,您将创建一个实现要执行的步骤的类。
也许您希望将它与构建正确策略对象的Factory结合使用,具体取决于从DB读取时的doucment状态。
答案 1 :(得分:1)
我认为您需要查看Windows Workflow Foundation。它是.NET的一部分,它使您能够相对容易地创建工作流。