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