今天主要学习了命令模式,java思想的权限访问,还有一些视屏教程,这里把比较重要的命令模式总结一下。
刚开始觉得命令模式很难得样子,但是学习完才发现他是和单例模式一样的,属于设计模式里面最简单的集中模式。
命令模式就是将命令请求封装成命令对象,然后其他的类直接调用该对象实现的接口的方法,达到调用对象的动作的目的。达到解耦合。
用小例子来解释:遥控器,电灯。遥控器要控制电灯的开关,但是遥控器中不应该有关于电灯的具体实现代码,这时就应该把电灯的开和关命令封装起来。
Light类:
package Dianqi; public class Light { private String s; public Light(String s) { this.s = s; } public void on() { System.out.println(s + "开灯"); } public void off() { System.out.println(s + "关灯"); } }
public interface Command { public void execute(); }
package Commands; import Dianqi.Light; import base.Command; public class LightOnCommond implements Command { public Light light = new Light("room"); @Override public void execute() { light.on(); } }
package Commands; import Dianqi.Light; import base.Command; public class LightOffCommond implements Command { public Light light = new Light("room"); @Override public void execute() { light.off(); } }
package base; public class RemoteControler { private Command command; public void setCommand(Command command) { this.command = command; } public void pressButton() { command.execute(); } }
import Commands.LightOffCommond; import Commands.LightOnCommond; import Dianqi.Light; public class TestCase { public static void main (String args[]) { LightOnCommond commandOn = new LightOnCommond(); LightOffCommond commandOff = new LightOffCommond(); RemoteControler controler = new RemoteControler(); controler.setCommand(commandOn); controler.pressButton(); controler.setCommand(commandOff); controler.pressButton(); } }
然后然后,这只是最基本的理解这种模式,还没在具体项目中练过手,还有很多进步空间的。
命令模式(CommandPattern),布布扣,bubuko.com
原文地址:http://blog.csdn.net/u013173289/article/details/38377275