设计模式之命令模式_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 设计模式之命令模式

设计模式之命令模式

 2011/10/7 7:55:07  beisicao  http://beisicao.iteye.com  我要评论(0)
  • 摘要:packageCommandModel;/***command模式的意图:将一个请求封装在一个对象,从而可用不同的*请求对客户进行参数化。它把请求和执行的责任分割开,交由不同的对象*去处理。请求方不必知道命令接受方的接口,也无须了解命令如何执行*@authorAdministrator*例如:要编写一个taskExecutor任务执行类,执行系统备份任务和执行*检查磁盘状态任务。但是,我们不希望这个类了解各种任务操作细节。我们的*目的就是把这个类和执行各种操作的方法解耦
  • 标签:模式 命令 设计 设计模式
package CommandModel;

/**
* command模式的意图:将一个请求封装在一个对象,从而可用不同的
* 请求对客户进行参数化。它把请求和执行的责任分割开,交由不同的对象
* 去处理。请求方不必知道命令接受方的接口,也无须了解命令如何执行
* @author Administrator
* 例如:要编写一个taskExecutor任务执行类,执行系统备份任务和执行
* 检查磁盘状态任务。但是,我们不希望这个类了解各种任务操作细节。我们的
* 目的就是把这个类和执行各种操作的方法解耦。
*建立一个任务接口
*/
public interface ITask {

public void execute();

}
===================================================================
package CommandModel;

public class BackupTask implements ITask{

@Override
public void execute() {
System.out.println("执行系统备份任务...");
}

}
===================================================================
package CommandModel;

public class DiskStatus implements ITask{

@Override
public void execute() {
System.out.println("执行检查磁盘状态任务...");
}
}
===================================================================
package CommandModel;

import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

/**
* 建立执行类
* @author Administrator
*
*/
public class TaskExecute {

private List<ITask> queue = new LinkedList<ITask>();
private static TaskExecute instance = new TaskExecute();

private TaskExecute(){
queue.add(new BackupTask());
queue.add(new DiskStatus());
}

//按顺序执行命令
public void performTasks(){
Iterator<ITask> it = queue.iterator();
while(it.hasNext()){
ITask task = it.next();
task.execute();
}
}

public void clearTasks(){
queue.clear();
}

public static TaskExecute getInstance(){
return instance;
}

public static void main(String args[]){
TaskExecute execute = TaskExecute.getInstance();

execute.performTasks();
execute.clearTasks();
}
}
发表评论
用户名: 匿名