希望学习Command模式,我在C#中设置了一个带有两个按钮的简单GUI应用程序。第一个按钮使用(我的尝试)Command模式来执行操作,而第二个按钮只调用另一个类中的静态方法。
这是表单代码
private void CommandButton_Click(object sender, EventArgs e)
{
ICommand command = new ConcreteCommand();
command.Execute(); //Performs the same code as DoOperation()
}
private void StaticButton_Click(object sender, EventArgs e)
{
Helper.DoOperation(); //Performs the same code as Execute()
}
我的问题是:
答案 0 :(得分:2)
命令模式用于根据命令参数中的值执行一组操作,而在您显示的代码中,不依赖于当前状态。在你的情况下,我的静态方法会很好。
但是这并不总是如此,所以要仔细研究你的需要,然后选择继续前进的方式,我会选择Command Pattern,因为这样可以在将来更改需求时提供更大的灵活性。
答案 1 :(得分:0)
在您的案例中使用命令模式没有任何优势。此外,您的实施不正确。使用命令模式,创建命令的人与执行命令的人不同。这种差异允许你做一些有趣的事情,比如给别人执行命令的能力。
例如,命令是WPF的自然组成部分。在那里,您可以将命令对象DataBind到按钮,并将实际执行留给按钮。不需要事件等。与您的情况不同,您必须使用事件(假设您使用的是WinForms)