zoukankan      html  css  js  c++  java
  • 命令模式

       命令模式把方法调用封装起来,通过封装方法调用,可以把运算快封装成形。

    加载调用过程:

    1:首先创建一个命令对象

    2:使用setCommand()将对象存储在调用者中

    3:客户可以使用命令对象执行命令。

    示例:

    //命令接口

    public interface Command{

    public void excute(){};

    }

    //命令类

    public class LightOnCommand implements Command

    {

    Light light;

    public LightOnCommand(Light light)

    {

    this.light=light;

    }

    public void excute()

    {

    light.on();

    }

    }

    //使用命令对象

    public class SimpleRemoteControl

    {

    Command slot;

    public SimpleRemoteControl()

    {

    this.slot=slot;

    }

    public void setCommand(Command c)

    {

    slot=c;

    }

    public void ButtonWasPressed()

    {

    slot.excute();

    }

    }

    命令模式讲请求封装成对象,以便使用不同的请求、队列或者日志来参数化成其它对象。命令模式也支持可撤销的操作。

    在实现遥控器的时候,可以用Command数组来存放命令,执行命令的时候按照数组下标来进行调用就OK了

    命令模式应用:队列请求

    讲日程安排,线程池,工作队列等对象作为一个工作队列。从队列中取出一个对象,执行命令就删除掉该对象,这些对象需要有统一的调用方法。

    命令模式应用:日志请求

    将操作记录在日志中,设置两个方法(store() load())一个负责记录操作状态,另一个是载入日志中记录的工作状态。

  • 相关阅读:
    spring获取webapplicationcontext,applicationcontext几种方法详解(转)
    spring注入是否会被回收
    think in java 手记(一)
    spring 注解实例
    navicat远程连接oracle
    tomcat监听activemq jms配置
    HDU 1160:FatMouse's Speed
    YTU 2457: 很简单的一道题
    YTU 2456: 评委打分
    YTU 2455: Pefect 数字
  • 原文地址:https://www.cnblogs.com/macula7/p/1960843.html
Copyright © 2011-2022 走看看