我正在开发一个需要展示这些行为的系统:
- 审计追踪
- 撤消/恢复到特定版本(此类操作本身将被审核记录)
我在这里看到了一个稍微相似的问题,但它只涉及我正在尝试做的部分事情。此外,我想捕获一个对象的整个生命周期(即 CRUD)。
我打算实现的方式如下:
- 有一个基于观察者模式的 ChangeManager 类
- 从以命令模式“包装”更改的基础对象派生我的对象
- 在任何 CRUD 事件上使用命令对象通知 ChangeManager
注意:“更改”命令将包括:
- 2 元组的(有序)集合,详细说明字段更改(prev,new)
- 进行更改的用户 ID
- 更改的时间戳
这只是“我的头上” - 我正在考虑采取的方法可能存在漏洞 - 我会感谢以前实施过这种行为的人的一些帮助,以及一般建议,专业人士和我上面概述的方法的缺点 - 或者可能是更好/替代方法。也将不胜感激一两个片段可以为我指明正确的方向!
我将使用 C# 作为实现语言。