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