【发布时间】:2010-09-11 10:04:50
【问题描述】:
我的问题与命令模式有关,我们有以下抽象(C#代码):
public interface ICommand
{
void Execute();
}
让我们使用一个简单的具体命令,该命令旨在从我们的应用程序中删除一个实体。例如,Person 实例。
我会有一个DeletePersonCommand,它实现了ICommand。该命令需要将Person作为参数删除,以便在调用Execute方法时将其删除。
管理参数化命令的最佳方式是什么?如何在执行命令之前将参数传递给命令?
【问题讨论】:
-
我知道这个问题可以追溯到四年前,但 Juanma 和 bloparod 实际上给出了正确答案:使
ICommand通用(ICommand<TArgs>)。给定的TArgs封装了所有参数(它变成了Parameter Object)。您必须为每个命令创建两个对象:一个用于消息;另一个用于消息。一为行为。起初这听起来很尴尬,但当你得到它时,你将永远不会回头。 This article 详细描述了这个模型。阅读此问题的每个人都必须阅读。 -
@Steven 感谢您提供指向您博客文章的链接。如果您能澄清您在其中描述的方法如何与此处的问题相匹配,那么您可能会很好,因为您自己承认,您“不考虑 [it] 命令模式”。人们可能会认为您的评论只是自我推销。
标签: c# design-patterns command-pattern