命令模式:
package com.hycz.design.pattern.command;
/**
* Created with IntelliJ IDEA.
* User: shangke
* Date: 6/14/13
* Time: 4:04 PM
* To change this template use File | Settings | File Templates.
*/
public interface Command {
public void execute();
}
package com.hycz.design.pattern.command;
/**
* Created with IntelliJ IDEA.
* User: shangke
* Date: 6/14/13
* Time: 4:06 PM
* To change this template use File | Settings | File Templates.
*/
public class Light {
public void on(){
System.out.println("light on .");
}
public void off(){
System.out.println("light off.");
}
}
package com.hycz.design.pattern.command;
/**
* Created with IntelliJ IDEA.
* User: shangke
* Date: 6/14/13
* Time: 4:05 PM
* To change this template use File | Settings | File Templates.
*/
public class LightOnCommand implements Command {
// 命令的接书者
Light light;
public LightOnCommand(Light light) {
this.light = light;
}
@Override
public void execute() {
//To change body of implemented methods use File | Settings | File Templates.
light.on();
}
}
package com.hycz.design.pattern.command;
/**
* Created with IntelliJ IDEA.
* User: shangke
* Date: 6/14/13
* Time: 4:09 PM
* To change this template use File | Settings | File Templates.
*/
public class SimpleRemoteControl {
Command command;
public void setCommand(Command command){
this.command = command;
}
public void buttonWasPressed(){
command.execute();
}
}
package com.hycz.design.pattern.command;
/**
* Created with IntelliJ IDEA.
* User: shangke
* Date: 6/14/13
* Time: 4:11 PM
* To change this template use File | Settings | File Templates.
*/
public class RemoteControlTest {
//命令模式的客户端
public static void main(String[] args) {
Light light = new Light(); //命令接收者
LightOnCommand lightOnCommand = new LightOnCommand(light);
SimpleRemoteControl simpleRemoteControl = new SimpleRemoteControl();// 调用者
simpleRemoteControl.setCommand(lightOnCommand);// 把命令传给调用者
simpleRemoteControl.buttonWasPressed();
}
}