我有一个需要创建一个"交易性"过程中使用外部API不支持COM+或.净交易(Sharepoint能确切)

我需要做的是能够执行一些程序,但任何失败这一顺序意味着,我必须手动将撤消以前所有的步骤。在我的情况下,只有2种类型的步骤,既af这是相当容易的撤销/卷回来。

不anyony有任何建议,为设计的模式或结构,可能是有用的这个?

有帮助吗?

解决方案

如果你改变做到SharePoint对象模型,可以使用的事实的改变都不做,直到你叫的 Update() 方法的修改的目的,例如 SPList.Update()SPWeb.Update().

否则,我会用的 命令 设计图案。第6章中 头,首先设计的模式 甚至有一个例子实现的撤消的功能。

其他提示

GoF命令的模式支持可撤销的行动。

我认为,同样的模式可用于操作的顺序(连续的命令)。

另一个良好的方式回退/撤消是的 纪念图案.它通常用于需要的快照对象,在给定的时间,让对象国可以恢复到的纪念品。

接下来的GOF 命令图案 你可能还想要看一看 交易脚本 从图案 P监管局.

你也许应该创建一个复合指挥(或交易脚本)就执行顺序。

你可能想看一看补偿资源管理:

http://msdn.microsoft.com/en-us/library/8xkdw05k(VS。80).aspx

如果你使用C++(或任何其他语言有确定性析构执行当范围终)你可以看看 范围的警卫.这种技术可能也是适合的。净通过使ScopeGuard实现IDisposable和洒"使用"的发言。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top