www.pudn.com > 23种设计模式的java实现.zip > TestCommand.java
/** *Title:
*Description:
*Copyright: Copyright (c) 2002
*Company: The9.com
* @author Jerry Shen * @version 0.5 */ public class TestCommand { public TestCommand() { } public static void main(String[] args) { Light testLight = new Light(); LightOnCommand testLOC = new LightOnCommand(testLight); LightOffCommand testLFC = new LightOffCommand(testLight); Switch testSwitch = new Switch(testLOC, testLFC); testSwitch.flipUp( ); testSwitch.flipDown( ); Fan testFan = new Fan( ); FanOnCommand foc = new FanOnCommand(testFan); FanOffCommand ffc = new FanOffCommand(testFan); Switch ts = new Switch( foc,ffc); ts.flipUp( ); ts.flipDown( ); } } //---------- Class Fan ------------------------------ class Fan { public void startRotate() { System.out.println("Fan is Rotating now !"); } public void stopRotate() { System.out.println("Fan is stop now !"); } } //----------------------------------------------------- //---------- Class Light ---------------------------- class Light { public void turnOn() { System.out.println("Light is on now !"); } public void turnOff() { System.out.println("Light is off now !"); } } //----------------------------------------------------- //---------- Class Switch --------------------------- class Switch { private Command UpCommand, DownCommand; public Switch (Command Up, Command Down) { UpCommand = Up; DownCommand = Down; } void flipUp() { UpCommand.execute(); } void flipDown() { DownCommand.execute(); } } //----------------------------------------------------- //---------- Class LightOnCommand ------------------- class LightOnCommand implements Command { private Light myLight; public LightOnCommand (Light L) { myLight = L; } public void execute() { myLight.turnOn(); } } //----------------------------------------------------- //---------- Class LightOffCommand ------------------ class LightOffCommand implements Command { private Light myLight; public LightOffCommand (Light L) { myLight = L; } public void execute() { myLight.turnOff(); } } //----------------------------------------------------- //---------- Class FanOnCommand --------------------- class FanOnCommand implements Command { private Fan myFan; public FanOnCommand (Fan F) { myFan = F; } public void execute() { myFan.startRotate(); } } //----------------------------------------------------- //---------- Class FanOffCommand --------------------- class FanOffCommand implements Command { private Fan myFan; public FanOffCommand (Fan F) { myFan = F; } public void execute() { myFan.stopRotate(); } } //-----------------------------------------------------