Ric*_*ick 17 .net command design-patterns
我正在使用WinForm .Net应用程序,其基本UI包括工具栏按钮,菜单项和按键,它们都启动相同的底层代码.现在,每个事件的事件处理程序调用执行该函数的常用方法.
根据我的阅读,这种类型的操作可以由Command设计模式处理,还具有自动启用/禁用或检查/取消选中UI元素的额外好处.
我一直在网上寻找一个很好的示例项目,但实际上还没有找到一个.有没有人有一个可以分享的好榜样?
Dal*_*gan 20
让我们首先确保我们知道Command模式是什么:
命令模式将请求封装为对象,并为其提供已知的公共接口.命令模式确保每个对象都接收自己的命令,并提供发送方和接收方之间的解耦.发送方是调用操作的对象,接收方是接收请求并对其执行操作的对象.
这是给你的一个例子.有很多方法可以做到这一点,但我将采用一种基于接口的方法来使代码更易于测试.我不确定你喜欢哪种语言,但我是用C#写的.
首先,创建一个描述Command的接口.
public interface ICommand
{
void Execute();
}
Run Code Online (Sandbox Code Playgroud)
其次,创建将实现命令接口的命令对象.
public class CutCommand : ICommand
{
public void Execute()
{
// Put code you like to execute when the CutCommand.Execute method is called.
}
}
Run Code Online (Sandbox Code Playgroud)
第三,我们需要设置我们的调用者或发送者对象.
public class TextOperations
{
public void Invoke(ICommand command)
{
command.Execute();
}
}
Run Code Online (Sandbox Code Playgroud)
第四,创建将使用invoker/sender对象的客户端对象.
public class Client
{
static void Main()
{
TextOperations textOperations = new TextOperations();
textOperation.Invoke(new CutCommand());
}
}
Run Code Online (Sandbox Code Playgroud)
我希望您可以将此示例用于您正在使用的应用程序.如果您想进一步澄清,请告诉我.