gpt4 book ai didi

c# - 用于 C# POCO 的简单撤消/重做系统

转载 作者:行者123 更新时间:2023-11-30 17:01:16 25 4
gpt4 key购买 nike

<分区>

我在内存中为每种类型的数据使用 POCO(类对象)。我有一组 myraid 函数可以对这些函数进行操作并以不同的方式修改它们。在对代码进行最少更改的情况下实现撤消/重做功能的简单方法是什么?一些想法:

  • 使用 ORM 记录更改 - Property-level logging - 修改 POCO 的方法应该记录他们修改的每个属性,或者通过 ORM 修改属性而不是直接在所述 POCO 上操作。 ORM 将记录更改并能够在需要时恢复。

  • 深度克隆和差异化 - Memento pattern - 在修改对象之前保存对象的深度克隆(浪费内存,速度慢)。修改完成后,调用一个计算对象属性差异的函数(必须遍历所有 props,缓慢、乏味、递归)。差异存储在日志中,以便日后恢复。

  • 每个命令都支持撤消/重做 - Command pattern - 经典方法,但需要对代码添加太多内容。我正在寻找通用的东西,最好是不需要从头开始重写应用程序的东西。

我不知道解决这类问题的典型方法,但考虑到它相当普遍,我确信有很好的模式可以轻松解决这个问题。您是否知道以简单方式处理 POCO 历史记录的任何模式/库?

我目前正在审查以下内容,但仍在寻找更好的方法。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com