oom*_*pah 7 c# design-patterns system-design
我正在研究一个需要展示这些行为的系统:
我在这里看到了一个稍微类似的问题,但它只涉及我正在尝试做的部分内容.此外,我想捕获对象的整个生命周期(即CRUD).
我打算实现这个的方式如下:
注意:'change'命令将包括:
这只是"脱离我的头脑" - 我正在考虑采取的方法可能存在漏洞 - 我会感谢以前实施过此类行为的人的一些帮助,以及一般建议,专业人士和关于我上面概述的方法的缺点 - 或者可能是更好/替代的方法.一个或两个指向正确方向的片段也将非常感激!
我将使用C#作为实现语言.
这是一个相当复杂的话题.有许多正式的方法.
从我的角度来看,我会考虑使用"事件采购".有关详细信息,请参见此处
http://martinfowler.com/eaaDev/EventSourcing.html
这将负责填充更改日志并维护当前状态,并使您能够重放事件以撤消更改.完全基于此的事件驱动架构,如CQRS:
http://martinfowler.com/bliki/CQRS.html
另一种选择是命令模式,它允许撤消但不消耗上述所有要求,例如审计跟踪.这里有一个带撤消命令模式的例子:
http://mattberther.com/2004/09/16/using-the-command-pattern-for-undo-functionality
希望这是有帮助的.
编辑:提供CQRS参考.