今天主要学习了命令模式,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