软件设计 命令模式 Command Pattern
现在各大电子厂商都在推智能家居,即可以通过手机这一个终端控制多个家用电器,比之前的单个设备智能由对应遥控器控制的方案要方便很多。这其实就是命令模式的应用。
命令模式将请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。
代码实现:
这里以手机控制电视机开启为例介绍命令模式:
1、定义命令接收者
/**
* 命令接收者
*/
public interface Receiver {
/**
* 开启
*/
void open();
}
2、定义电视机
/**
* 电视机
*/
public class Television implements Receiver{
优缺点:
优点
1、降低了系统耦合度。
2、新的命令可以很容易添加到系统中去。
缺点
使用命令模式可能会导致某些系统有过多的具体命令类。
使用场景:
需要用命令的地方都可以使用命令模式,比如:
1、GUI 中每一个按钮都是一条命令。
2、模拟 CMD。