1)命令者模式
public class Light {
private String lightName;
Light(String lightName){
this.lightName = lightName;
}
public void on(){
System.out.println("----"+lightName+"--on--");
}
public void of(){
System.out.println("----"+lightName+"--of--");
}
}
// 执行一个命令
interface LightOnCommand{
void execute();
}
// 执行一个命令
interface LightOfCommand{
void execute();
}
// 执行两个命令
interface LightOnOfCommand{
void executeOn();
void executeOff();
}
class OnLightCommand implements LightOnCommand{
Light light;
OnLightCommand(Light light){
this.light = light;
}
@Override
public void execute() {
light.on();
}
}
class OfLightCommand implements LightOfCommand{
Light light;
OfLightCommand(Light light){
this.light = light;
}
@Override
public void execute() {
light.of();
}
}
class OnOfLightCommand implements LightOnOfCommand{
Light light;
OnOfLightCommand(Light light){
this.light = light;
}
@Override
public void executeOn() {
light.on();
}
@Override
public void executeOff() {
light.of();
}
}
优点:比较灵活,可以调用一个方法也可以是两个