设计模式之命令模式

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();
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值