首先,定义一个接口
package pattenDesign;
public interface ICommand {
public void execute();
}
接下来定义两个接口的实现类:
public class CommandImp1 implements ICommand {
private String name;
public CommandImp1(String name)
{
this.name=name;
}
public void execute() {
System.out.println("CommandImp1"+name);
}
}
public class CommandImp2 implements ICommand {
private String name;
public CommandImp2(String name)
{
this.name=name;
}
public void execute() {
System.out.println("CommandImp2"+name);
}
}
定义一个转发器,这个转发器可以根据传近来的名字找到相应的命令
import java.util.HashMap;
import java.util.Map;
public class Invoker {
private Map commands;
public Invoker() {
commands = new HashMap();
}
public void addCommand(String commName, ICommand command) {
commands.put(commName, command);
}
//通过名称执行命令
public void request(String commName) {
ICommand command = (ICommand) commands.get(commName);
command.execute();
}
}
客户端测试代码
public static void main(String[] args) {
// TODO Auto-generated method stub
Invoker invoker=new Invoker();
invoker.addCommand("command1", new CommandImp1("lanhongbo"));
invoker.addCommand("command2", new CommandImp2("lanhongbo"));
String[] req = {"command1", "command2"};
invoker.request(req[0]);
invoker.request(req[1]);
}
输出结果如下:
CommandImp1:lanhongbo
CommandImp2:lanhongbo
Invoker里面相当与包含了一个容器,并且提供了通过名称冲容器中调用相应实现的方法.
xwork的核心设计就是这个模式.
Struts2以及Webwork看起来跟这里非常像,其中的ACTION就是基于配置文件中的名通过反射找到相对应的值.当然,其内部实现非常复杂.还需要花很多时间去看下源代码
分享到:
相关推荐
提起Command模式,我想没有什么比遥控器的例子更能说明问题了,本文将通过它来一步步实现GOF的Command模式。 我们先看下这个遥控器程序的需求:假如我们需要为家里的电器设计一个远程遥控器,通过这个控制器,我们...
自己写个command模式的测试代码,很清楚,一看就会。呵呵,混点资源分。
Command模式(Java设计模式),经典设计模式之一,有利于编程学习
Command设计模式ppt 代码示例 设计模式 Command ppt 代码实例 撤销重做实例
command模式C++实现源码,可执行。 博文链接:https://jjh53020.iteye.com/blog/226280
Observer与Command模式在VTK类库设计中的应用研究 通过阅读本文档可以熟悉vtk中的重要编程模式
用C++实现Command模式实现undo操作
设计模式学习之Command模式共8页.pdf.zip
这是一个采用command模式的撤销重做类,采用了list集合来存储命令,这样能限定容器的命令数量。
23种设计模式之十九(行为模式)Command模式
.NET委托和泛型允许对Command模式进行优雅的实现。
有关设计模式里边的命令模式,内含ppt、源代码及结果、word整理。在此以供大家学习交流。
这是用Command设计模式设计的搭建的一个小框架例子,初学使用,如果是框架设计高手,不用看了,初学者可以参考下。
命令Command模式是GOF23种模式中的一种,是一种行为模式。这种模式很难理解。《设计模式》一书中对它语焉不详。而网上的一些文章对其的解释也是错误的。实际上,命令模式并不是那么神秘。 命令模式的理解,关键有2点...