论坛首页 Java企业应用论坛

扯一扯命令模式

浏览 2580 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-11-29   最后修改:2011-11-29
老早就看过命令模式,但是具体项目使用起来,理解的不是很好,最近有点小感悟,闲扯下
命令模式的核心:
包装命令处理作为一个类存在 --core1
提供统一接口--core2

一般情景中能看到的命令模式:
    struts2就是基于命令模式的框架,请求--响应这种web方式,一个path对应一个action处理
path就是命令,对应的action就是命令,而且还提供了统一的接口exe
但是通常用插件实现零配置,这个用annotation方式也实现了统一的处理,具体没细看

public interface Action {  
  
    /** 
     * Where the logic of the action is executed. 
     * 
     * @return a string representing the logical result of the execution. 
     *         See constants in this interface for a list of standard result values. 
     * @throws Exception thrown if a system level exception occurs. 
     *                   Application level exceptions should be handled by returning 
     *                   an error value, such as Action.ERROR. 
     */  
    public String execute() throws Exception;  
}  

    c/s这种开发模式的命令模式,菜单处理操作对应于  事件--响应 这种跟请求--响应 类似
一个事件对应一个命令类的处理,并且都是提供统一接口来包装持有这些命令
详细分析:
命令类--command
调用者(持有命令类)--invoke
命令模式就位具体事件或者请求之类的,会给他生成一个具体调用者实例,这个实例是根据请求的特性

    命令模式可以把这些命令封装起来,实现撤销,重做等方式,这个就是复杂的命令模式实现,简单的话只需在持有类中有一个记录命令操作的历史类
   发表时间:2011-11-29  
那是不是和request和response一个思想?
或者说request和response就是用的命令模式?

0 请登录后投票
   发表时间:2011-11-29  
393799950 写道
那是不是和request和response一个思想?
或者说request和response就是用的命令模式?


没有,我是说struts2的处理请求这种方式,不是泛指
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics