我有一个winform,允许人们从数据库中编辑数据,以简化事情假设有一个客户表在数据库中有3个字段 - 名称,城市,国家。通过winform(s)人们可以添加/编辑/删除客户。活动记录(审计追踪)
对于这些行为,我们需要保存:
字段名称是什么(名称,市,在这种情况下国家)
什么字段值,他们修改之前
字段值被修改后的值是什么。
如果动作是添加或删除,则2和3将相同。
我已经实现了这个使用XMLSerialisation(但不使用任何设计模式),我的XML输出看起来像这样。
<?xml version="1.0" encoding="utf-8"?>
<ActivityItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<UserID>26</UserID>
<FormTitle>frmCustomer</FormTitle>
<Action>Edit</Action>
<Area>Customers</Area>
<TrackedActivity>
<FieldNames>
<string>Name</string>
<string>City</string>
<string>Country</string>
</FieldNames>
<PreValues>
<string>CompA</string>
<string>London</string>
<string>UK</string>
</PreValues>
<PostValues>
<string>CompB</string>
<string>Manchester</string>
<string>UK</string>
</PostValues>
</TrackedActivity>
<DateTimeStamp>2012-06-15T10:16:18</DateTimeStamp>
</ActivityItem>
该解决方案可以处理不同数量的领域的系统的不同区域(即当你正在修改的产品,例如同样的事情的作品)。
我的问题是,是否有一个明确的设计模式来处理这种行为?
非常感谢
感谢这一点,但我已经有一个类似的代码,我所寻找的是试图利用设计模式之一(可能或不可能).. – 03Usr