命令模式
例程讲的是一个插排,有8个插口,分别有个开、关的按钮控制着,插口可以接入各种各样的电器,现在要实现对电器的操作。从代码的角度来分析,有一个Command接口:
public interface Command {
public void execute();
}
每个电器都有各种各样的操作,我们对每一个操作都用一个具体的类来表示(实现command接口的类),例如有一个灯泡Light,可以执行doOn、doOff两个操作,这个灯泡对应的两个command分别是lightOnCommand、lightOffCommand:
public class LightOnCommand implements Command {
Light light;
public LightOnCommand(Light light) {
this.liaght = light;
}
public void execute() {
light.doOn;
}
}
最后把这两个command传入排插,当开按钮按下时执行lightOnCommand的execute方法(对应着doOn),当关按钮按下时执行lightOffCOmmand的execute方法(对应着doOff)。