/** *命令接受者 */ public class Light{ public void turnOn(){ System.out.println("the light is turn on"); } public void turnOff(){ System.out.println("the light is turn off"); } } public interface Commond{ public void execute(); } /** *开灯命令 */ LightTurnOnCommond implements Commond{ private Light light; public LightTurnOnCommond(Light light){ this.ligth=light; } public void execute(){ ligth.turnOn(); } } /** *关灯命令 */ LightTurnOffCommond implements Commond{ private Light light; public LightTurnOffCommond(Light light){ this.ligth=light; } public void execute(){ ligth.turnOff(); } } /** *控制器类 */ public ControlTool{ private static Map<String, Commond> commondsMap = new HashMap<String, Commond>(); public static void setCommond(String commondKey, Commond commond){ commondsMap.put(commondKey, commond); } public static void onButtonPushed(String commondKey){ commondsMap.get(commondKey).execute(); } } /** * */ public Class ClientTest{ public static final String LIGHTTURNON="lightTurnOn"; public static final String LIGHTTURNOFF="lightTurnOff"; public static void main(String[] args){ Light light = new Light(); ControlTool.setCommond(LIGHTTURNON, new LightTurnOnCommond(light)); ControlTool.setCommond(LIGHTTURNOFF, new LightTurnOffCommond(light)); ControlTool.onButtonPushed(LIGHTTURNOFF); } }