gpt4 book ai didi

c# - 命令队列

转载 作者:太空狗 更新时间:2023-10-29 23:10:37 26 4
gpt4 key购买 nike

所以我有一个我一直在使用的数据库 (sql) 管理程序,用于处理我公司销售的商品。对于程序的主要部分,项目信息会随着用户使用某些自定义控件而更新。一切正常。但现在我进入了程序的更高级别部分,即添加/删除/复制项目。这不能像编辑项目信息那样“即时更新”,因为很容易把事情搞砸。所以我基本上想在这里为他们设置一个文件-> 保存交易类型。我如何看待这项工作是在列表中创建所有 sql 命令,然后在保存时运行它们。

此处可用的功能是添加新项目、删除项目、从另一个项目复制和重命名。

所以它会是这样一个列表:

insert...
update...
update...
delete...
update...
etc.

它将运行并执行所有命令。我遇到的问题是我已经有一个类具有处理所有这些功能的方法。我想不出一种方法来调用队列中的所有这些方法,并且在另一个类中重写所有 sql 语句对我来说似乎很愚蠢。有没有一种方法可以让我记住类似以下内容的列表:

item.Rename()
item.ChangeSize()
item.Delete()

我觉得我想得太多了……或者可能想得不够……我不知道。

最佳答案

您正在寻找的是命令模式

基本思想是你有一个 ICommand 接口(interface),它有一个方法 Execute()
然后你实现多个 ConcreteCommand,例如带有参数化构造函数或属性 NewNameRenameCommand

不要忘记相应地处理异常,如果可能发生的话,也可以实现撤消方法。我对您的应用程序了解不足,无法在此做出假设。

public interface ICommand
{
void Execute();
}

public class RenameCommand : ICommand
{
private string newName;

public RenameCommand(string newName)
{
this.newName = newName;
}

void ICommand.Execute()
{
item.rename(newName);
}
}

关于c# - 命令队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6097360/

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