最近我发现我的自我实现下像一个模式代码:这只是命令模式的功能实现吗?
public class SomeClass()
{
private T Execute<T>(Func<T> function)
{
// Do some common stuff for every function like logging and try-catch
function();
}
public Type1 Command1()
{
Execute<Type1>(() => funcForCommand1);
}
public Type2 Command2()
{
Execute<Type2>(() => funcForCommand2);
}
}
这只是在命令模式功能的方法吗?根据情况我有不同的版本?通过让funcForCommandX
继承一些定义Execute
函数的ICommand
,可能可以达到完全相同的效果,但是在许多情况下我更喜欢我的方式,因为大多数情况下,这些命令仅用于代码中的一个位置,而不是需要暴露给代码的其余部分。当然,如果它在代码中更多的位置使用,你应该实现真正的命令模式。
好的答案...我忘了撤销/重做等部分。 – 2010-12-16 09:24:48