.NET中的Command(命令)模式
fmms 12年前
<p> 在 <a href="/misc/goto?guid=4958337279836821880">Command(命令)模式</a>中,使用对象来表示和封装稍后调用该方法所需的全部信息——这些信息包括方法名、拥有该方法的对象、及参数值。在系列文章“<a href="/misc/goto?guid=4958337280765472819">.NET 中的 Command(命令)模式</a>”的第一部分中,Eric Vogel 介绍了在 WPF 应用程序上下文中对 <a href="/misc/goto?guid=4958337281569672789">ICommand</a> 接口的使用。</p> <p> Command(命令)通常是指某个操作,及知道如何执行此操作的命令对象。那些命令对象本身会实现通用接口——调用者无需知道任何实现细节,只需通过此接口即可调用方法。这有助于将调用该操作的对象与知道如何执行此操作的对象相分离,从而带来清晰的<a href="/misc/goto?guid=4958337282366505867">关注点分离</a>。</p> <p> 在 Silverlight 或 WPF 应用程序中使用 ICommand 接口的主要目的是,为了保持 XAML 隐藏视图的洁净,不掺杂任何用户交互代码。对于理解如何在 Silverlight 应用程序中实现此目的,“<a href="/misc/goto?guid=4958337283170718354">在 Silverlight 中使用 ICommand 接口</a>”也是篇佳作。因为命令对象可以排队等待稍后对它们方法的调用,所以此模式对于实现 <a href="/misc/goto?guid=4958337283961624605">Undo-Redo(撤销-重做)功能</a>也相当有用。</p> <p> 请注意,ICommand 接口本身对于实现 Command(命令)模式并不是必须的——为了定义某个 Command(命令),你可以创建自己的接口或抽象类。<a href="/misc/goto?guid=4958337284767246252">这些</a><a href="/misc/goto?guid=4958337285572695564">示例</a>展示了在不依赖 ICommand 接口的情况下使用 Command(命令)模式,不过使用的都是相同的基础概念。</p> <p> 查看英文原文:<a href="/misc/goto?guid=4958337286372848197">Command Pattern In .NET</a></p> <div id="come_from"> 来自: <a id="link_source2" href="/misc/goto?guid=4958337287168120050" target="_blank">InfoQ</a> </div>