命令队列

Nic*_*ick 5 c# sql

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

这里可用的功能是添加新项目,删除项目,从其他项目复制和重命名.

所以这将是一个列表:

insert...
update...
update...
delete...
update...
etc.
Run Code Online (Sandbox Code Playgroud)

它将贯穿并执行所有命令.我遇到的问题是我已经有一个类,它有方法来处理所有这些函数.我想不出一种在队列中调用所有这些方法的方法,并且在另一个类中重写所有sql语句对我来说似乎很愚蠢.有没有办法让我记住一个类似的列表:

item.Rename()
item.ChangeSize()
item.Delete()
Run Code Online (Sandbox Code Playgroud)

我觉得我正在思考这个...或者可能没有思考......我不知道.

Sim*_*ker 6

你要找的是一个Command Pattern.

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

不要忘记相应地处理异常,也可以实现Undo-Method,如果这些可能发生的话.我不太了解您的应用程序在这里做出假设.

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);
    }
}
Run Code Online (Sandbox Code Playgroud)