[超次元设计模式]——命令模式
Posted tomoka
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[超次元设计模式]——命令模式相关的知识,希望对你有一定的参考价值。
1. 为什么要有命令模式
- 软件构建过程中。行为请求者与行为调用者可能有强耦合的情况。如下所示
if (type == a) do_a() else if (type == b) do_b() else if (type == c) do_c() ...
这样的代码是非常繁杂且高耦合的,所以需要一种模式优化掉它。
- 可能需要进行行为撤销等操作,这样编码可能会非常麻烦。
所以,命令模式,要做的就是,将行为封装成对象,以解决这个问题。
2. 命令模式的定义
命令模式:
将请求(行为)封装成对象,以便使用不同的请求、队列或者日志参数化其他对象,可支持可撤销操作。
3. 命令模式的实现
首先,应该定义命令接口。
public interface Command public void execute();
如果这一系列命令都需要撤销操作,可以再定义一个undo方法。
然后,子类通过实现这个接口,构成不同的命令。
public class TestCommand public void execute() doSomething();
最后,调用者通过传入Command对象,实现调用。
以上是关于[超次元设计模式]——命令模式的主要内容,如果未能解决你的问题,请参考以下文章