命令模式是一种行为设计模式,它将一个方法包装成一个独立的对象。
=>
优点
这样的好处在于:
- 命令成为了减少 GUI 和业务逻辑层之间耦合的中间层
- 更方便地复用、扩展(考虑WPF的code-behind的方式和MVVM方式的区别)
- 可以为一个命令添加额外的功能(比如WPF中
ICommand
的CanExecute
方法) - 可以将操作放入队列,以便延迟执行、回滚等
缺点
缺点在于:
- 在触发和操作之间增加了一层
ICommand
namespace System.Windows.Input
{
public interface ICommand
{
event EventHandler? CanExecuteChanged;
bool CanExecute(object? parameter);
void Execute(object? parameter);
}
}