Java与模式 命令模式 Command Pattern

命令模式属于对象的行为模式。命令模式又称为行动(Action)模式或事务(Transaction)模式

命令模式允许系统使用不同的请求把客户端参数化,对请求派对或者记录请求日志,可以提供命令的撤销和恢复功能。命令模式把发出命令的责任和执行命令的责任分割开,委派给不同的对象。

命令模式允许请求的一方和接收请求的一方能够独立演化,从而具有以下的优点:

  • 命令模式使新的命令很容易地被加入到系统里
  • 允许接收请求的一方决定是否要否决请求
  • 能较容易的设计一个命令队列
  • 可以容易的实现对请求的redo
  • 在需要的情况下,可以较容易的将命令记入日志。

结构如下:

Client类代码实现如下:

 

package com.javapatterns.command;

 

public class Client

{

    public static void main(String[] args)

    {

        Receiver receiver = new Receiver();

        Command command = new ConcreteCommand(receiver);

     Invoker invoker = new Invoker( );

 

        invoker.action(command );

    }

 

    /** @link dependency */

    /*#Receiver lnkReceiver;*/

 

    /** @link dependency */

    /*#Invoker lnkInvoker;*/

}

 

应用范围:

  1. 作为回调函数在面向对象系统中的替代
  2. 需要不同的时间指定请求,将请求排队。
  3. 需要支持命令的撤销。命令对象可以存储状态,以便客户端可以撤销上次操作。
  4. 如果系统需要把所有数据更新到日志里,以便系统崩溃时,可以重新调用execute()命令一条一条执行这些命令,从而恢复系统崩溃前所作的数据更新。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值