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())一个负责记录操作状态,另一个是载入日志中记录的工作状态。

  • 相关阅读:
    《需求工程——软件建模与分析》读后感之三
    项目目标文档
    利益相关者描述案例
    《需求工程——软件建模与分析》读后感之二
    《需求工程——软件建模与分析》读后感之一
    专业实训题目需求分析
    《代码之美》读后感
    计算“1”的数量
    团队冲刺第九天
    linux df 命令
  • 原文地址:https://www.cnblogs.com/macula7/p/1960683.html
Copyright © 2011-2022 走看看