`
kang
  • 浏览: 472681 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

行为模式之命令模式Command

阅读更多

<!----><!----> <!---->

命令模式的使用场景(第2段代码):客户端要使用来自不同模块的不同命令,客户端可以不需要知道模块的具体内容,就可以直接通过接口(已经将各种命令和对应模块封装起来)来使用。

 

 

1.未使用命令模式:

 

package com.javaeye.kang.command;

 

// 模式 1

class Moudle1 {

      public void fun1() {

            System. out .println( " 1 的方法 1" );

      }

      /*public void fun2()...*/

      // 以下功能在客 命令 1” 时调

      public void executeCommand() {

            System. out .println( " 示模 1" );

      }

}

 

// 模式 2

class Moudle2 {

      public void fun1() {

            System. out .println( " 2 的方法 1" );

      }

      /*public void fun2()...*/

      // 以下功能在客 命令 2” 时调

      public void executeCommand() {

            System. out .println( " 示模 2" );

      }

}

 

//

public class CommandTest {

      public static void main(String[] args) {

            String command = " 命令 1" ;

            if ( " 命令 1" .equals(command)) {

                  // 行命令 1

                  Moudle1 m1 = new Moudle1();

                  m1.executeCommand();

            } else if ( " 命令 2" .equals(command)) {

                  // 行命令 2

                  Moudle2 m2 = new Moudle2();

                  m2.executeCommand();

            }

      }

}

 

测试结果:

示模 1

 

 

2.使用命令模式且面向接口编程:

 

/**

  * 使用命令模式

  */

 

// 命令接口,面向接口

interface ICommand {

      public abstract void executeCommand();

}

 

// 模式 1

class Moudle1 implements ICommand {

      public void fun1() {

            System. out .println( " 1 的方法 1" );

      }

      //public void fun2()...

      // 以下功能在客 命令 1” 时调

      public void executeCommand() {

            System. out .println( " 示模 1" );

      }

}

 

// 模式 2

class Moudle2 implements ICommand {

      public void fun1() {

            System. out .println( " 2 的方法 1" );

      }

      //public void fun2()...

      // 以下功能在客 命令 2” 时调

      public void executeCommand() {

            System. out .println( " 示模 2" );

      }

}

 

// 命令 组织类 ,有点 似工厂模式,但此 主要是 组织 命令

class CommandConstructor {

      private static HashMap commandPool = new HashMap();

      // 一个命令与模 映射起来

      public static void constructorCommandPool() {

        // 明: 实际应 用中,并不一定在 new ,各个模 的引用可以从外界

            // 只是作 为测试 使用

            Moudle1 moudle1 = new Moudle1();

            Moudle2 moudle2 = new Moudle2();

            commandPool .put( " 命令 1" , moudle1);

            commandPool .put( " 命令 2" , moudle2);

      }

      // 外界提供根据 key 对应值 的服

      public static ICommand getCommand (String key) {

            return (ICommand) commandPool .get(key);

      }

}

 

// 端, 用命令 ,无需 心来源,只要

public class CommandTest {

      public static void main(String[] args) {

            CommandConstructor.constructorCommandPool ();

            // 根据 key 对应

            ICommand c1 = CommandConstructor.getCommand ( " 命令 2" );

            c1.executeCommand();

      }

}

测试结果:

示模 块2

  • 描述: 命令模式内容
  • 大小: 118.1 KB
  • 描述: 命令模式实例
  • 大小: 91.7 KB
分享到:
评论

相关推荐

    (行为型模式) Command 命令模式

    ### (行为型模式) Command 命令模式 #### 概述 在软件工程领域,设计模式被广泛地应用于解决常见的编程难题。其中,“Command”(命令)模式是一种行为型设计模式,它允许将请求封装成对象,从而使你能够用不同的...

    设计模式之命令模式(Command Pattern)

    命令模式是一种行为设计模式,它将请求封装成独立的对象,使得可以使用不同的请求、队列请求、记录请求历史以及支持可撤销的操作。这种模式在软件工程中被广泛应用,尤其是在需要解耦请求发起者和接收者时,提高了...

    设计模式之Command(命令)模式

    此外,"Command模式.ppt"和"Command模式.docx"可能包含了对命令模式更深入的理论解释和示例代码,帮助学习者理解其原理和应用。 总之,Command模式通过将操作封装在独立的类中,提高了代码的可读性和可维护性,同时...

    设计模式之命令模式(Command)

    命令模式是一种行为设计模式,它的主要目的是将请求者与接收者解耦,使得请求的发起者无需知道哪个对象会执行这个请求,同时也让系统更容易扩展。这种模式在软件工程中广泛应用,特别是在事件驱动和分布式系统中。 ...

    命令模式(Command模式)

    命令模式是一种行为设计模式,它将请求封装为一个对象,使得我们可以使用不同的请求、队列或者记录请求日志,还可以支持可撤销的操作。在命令模式中,我们创建表示各种操作的类以及能执行这些操作的对象。这种模式的...

    [行为模式] head first 设计模式之命令模式(Command)

    【行为模式】Head First 设计模式之命令模式(Command) 命令模式是一种行为设计模式,它将请求封装为一个对象,从而使我们能支持可撤销的操作、参数化对象以及将请求排队等高级操作。在Head First的设计模式书中,...

    设计模式C++学习之命令模式(Command)

    命令模式是一种行为设计模式,它将请求封装为一个对象,使得可以使用不同的请求、队列或者日志请求,也可以支持可撤销的操作。在C++中,命令模式的应用可以帮助我们更好地组织代码,提高代码的可扩展性和可维护性。...

    c++-设计模式之命令模式(Command Pattern)

    命令模式(Command Pattern)是一种行为型设计模式,它将请求封装为对象,从而使您可以使用不同的请求、队列请求或日志请求,并支持可撤销操作。命令模式通常用于实现操作的解耦,使得发送者和接收者之间不直接关联...

    命令模式command pattern

    命令模式(Command Pattern)是一种行为设计模式,它将请求封装为一个对象,使得你可以使用不同的请求、队列请求,或者支持可撤销的操作。在Java中实现命令模式,我们可以利用面向对象编程的特性来构建系统,使得...

    [行为型模式]命令模式的理解

    命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。在软件工程中,这种模式常用于解耦发出命令的对象(调用者)与...

    命令模式_Command

    命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。在IT行业中,命令模式广泛应用于软件架构和系统设计,以提高代码...

    Command命令模式介绍.docx

    Command命令模式是一种常用的设计模式,属于对象行为型模式之一。它的核心思想在于将请求封装成一个对象,从而让发出请求的对象和执行请求的对象解耦。这种方式有助于实现软件模块之间的低耦合度,并提高了系统的...

    设计模式之Command模式和代码实现

    Command模式是一种行为设计模式,它的主要目的是将命令的发起者(Invoker)与命令的执行者(Receiver)解耦。在Command模式中,一个命令对象封装了特定的请求,调用者(Invoker)只需要知道如何发送命令,而无需知道...

    command 模式的c++实现

    命令模式是一种行为设计模式,它将请求封装为一个对象,使得你可以使用不同的请求、队列或者日志请求,也可以支持可撤销的操作。在C++中实现命令模式,可以有效地解耦调用者和接收者,使系统更加灵活和易于维护。 #...

    设计模式之命令模式案例代码

    命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。在本文中,我们将深入探讨命令模式的原理、结构和实际应用,并...

    设计模式之命令模式

    命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。在软件工程中,这种模式常用于解耦发出命令的对象和执行命令的...

    C++设计模式代码资源23_Command_命令模式.zip

    命令模式是一种行为设计模式,它将请求封装为一个对象,使得你可以使用不同的请求、队列或者记录请求日志,同时支持可撤销的操作。在C++编程中,命令模式是一种非常实用的设计模式,能够帮助我们实现松耦合的系统,...

    C#面向对象设计模式纵横谈(15):(行为型模式) Command 命令模式 (Level 300)

    命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。在C#编程中,这种模式常用于解耦调用者和接收者,提高代码的灵活...

    Command模式(Java设计模式)

    Command模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。在Java编程中,这种模式被广泛应用于实现命令行操作、GUI事件...

    C#面向对象设计模式纵横谈\15 行为型模式Command命令模式.zip

    在这里与各位分享本人从网络上下载的C#面向对象设计模式纵横谈系列视频,共有25节,除了第一节需要各位贡献一点资源分以作为对本人上传资源的回馈,后面的其他资源均不需要... 这是第15节:行为型模式Command命令模式

Global site tag (gtag.js) - Google Analytics