`
starbhhc
  • 浏览: 654402 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

Command模式例子3

阅读更多
import java.awt.Button;   
import java.awt.Color;   
import java.awt.FileDialog;   
import java.awt.Frame;   
import java.awt.Menu;   
import java.awt.MenuBar;   
import java.awt.MenuItem;   
import java.awt.Panel;   
import java.awt.event.ActionEvent;   
import java.awt.event.ActionListener;   
  
interface Command {   
  public void Execute();   
}   
  
public class ExtrnCommand extends Frame implements ActionListener {   
  Menu mnuFile;   
  
  fileOpenCommand mnuOpen;   
  
  fileExitCommand mnuExit;   
  
  btnRedCommand btnRed;   
  
  Panel p;   
  
  Frame fr;   
  
  //-----------------------------------------   
  public ExtrnCommand() {   
    super("Frame with external commands");   
    fr = this; //save frame object   
    MenuBar mbar = new MenuBar();   
    setMenuBar(mbar);   
  
    mnuFile = new Menu("File", true);   
    mbar.add(mnuFile);   
  
    mnuOpen = new fileOpenCommand("Open...", this);   
    mnuFile.add(mnuOpen);   
    mnuExit = new fileExitCommand("Exit");   
    mnuFile.add(mnuExit);   
  
    mnuOpen.addActionListener(this);   
    mnuExit.addActionListener(this);   
  
    p = new Panel();   
    add(p);   
    btnRed = new btnRedCommand("Red", p);   
  
    p.add(btnRed);   
  
    btnRed.addActionListener(this);   
    setBounds(100, 100, 200, 100);   
    setVisible(true);   
  }   
  
  //-----------------------------------------   
  public void actionPerformed(ActionEvent e) {   
    Command obj = (Command) e.getSource();   
    obj.Execute();   
  }   
  
  //-----------------------------------------   
  static public void main(String argv[]) {   
    new ExtrnCommand();   
  }   
}   
//==========================================   
  
class btnRedCommand extends Button implements Command {   
  Panel p;   
  
  public btnRedCommand(String caption, Panel pnl) {   
    super(caption);   
    p = pnl;   
  }   
  
  public void Execute() {   
    p.setBackground(Color.red);   
  }   
}   
//------------------------------------------   
  
class fileOpenCommand extends MenuItem implements Command {   
  Frame fr;   
  
  public fileOpenCommand(String caption, Frame frm) {   
    super(caption);   
    fr = frm;   
  }   
  
  public void Execute() {   
    FileDialog fDlg = new FileDialog(fr, "Open file");   
    fDlg.show();   
  }   
}   
//-------------------------------------------   
  
class fileExitCommand extends MenuItem implements Command {   
  public fileExitCommand(String caption) {   
    super(caption);   
  }   
  
  public void Execute() {   
    System.exit(0);   
  }   
}   
  
分享到:
评论

相关推荐

    Command设计模式搭建的框架小例子

    在Command模式中,主要涉及到以下几个角色: 1. 命令接口(Command):定义了命令的基本方法,通常是Execute,执行具体的业务逻辑。 2. 具体命令(Concrete Command):实现了命令接口,负责绑定接收者并定义执行的...

    Command模式(Java设计模式)

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

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

    在给定的例子中,通过引入Command模式,我们可以更容易地扩展遥控器的功能,增加新的电器或操作,而不会影响现有的代码结构。同时,这种模式还使得命令的发起者(遥控器)和命令的执行者(电器)之间的依赖关系变得...

    设计模式--命令模式java例子

    命令模式的核心是将请求者(Invoker)与执行者(Receiver)解耦,通过引入命令(Command)接口和具体命令(Concrete Command)类来实现。在该模式中,有四个主要角色: 1. **命令(Command)接口**:定义了一个接收...

    命令模式command pattern

    在这个例子中,命令模式使得我们可以很容易地添加新的命令,只需创建一个新的具体命令类并实现Command接口。同时,调用者(RemoteControl)和接收者(Light)之间完全解耦,增强了系统的扩展性和可维护性。 此外,...

    Command命令模式介绍.docx

    通过上述例子可以看出,Command命令模式能够有效地将请求发送方与接收方解耦。这种方式不仅使得代码更加清晰,也更容易扩展和维护。例如,如果需要添加一个新的命令,只需创建一个具体的命令类即可,无需修改原有的...

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

    在`Command.cpp`这个文件中,我们可以预期会看到关于命令模式的实现。通常,命令模式包含以下关键角色: 1. **Command(命令)接口**:定义一个执行操作的接口。所有具体命令类都实现了这个接口。 2. **Concrete ...

    设计模式之Command

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

    C++ Command模式

    Command模式是软件设计模式中的一种行为模式,它在23种经典设计模式中排名第十九,主要用来封装命令请求。这个模式的核心思想是将一个请求封装为一个对象,从而让我们可以使用不同的请求、队列或者日志请求,以及...

    设计模式例子文档,简单易学

    3. 行为型模式:这类模式主要关注对象之间的交互和职责分配,包括责任链模式(Chain of Responsibility)、命令模式(Command)、解释器模式(Interpreter)、迭代器模式(Iterator)、中介者模式(Mediator)、备忘...

    java 23种设计模式及具体例子

    * 命令模式(Command) * 备忘录模式(Memento) * 状态模式(State) * 访问者模式(Visitor) * 中介者模式(Mediator) * 解释器模式(Interpreter) 二、java 的 23 种设计模式 java 中的 23 种设计模式可以...

    设计模式例子和PPT

    在这个“设计模式例子和PPT”压缩包中,包含的内容主要是关于设计模式的基本原则、UML类图以及一些实际的应用示例。 设计模式分为三大类:创建型模式、结构型模式和行为型模式。每种模式都有其特定的目标和适用场景...

    Command(命令)模式[定义].pdf

    在给定的例子中,我们看到了Command模式的基本组成部分: 1. **Command接口/抽象类**:这是模式的核心,定义了所有命令必须实现的`execute()`方法。在例子中,`Command`类是一个抽象类,但通常可以是一个接口。这...

    各个版本的 设计模式 带例子

    - **命令模式(Command)**:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志;以及支持可撤销的操作。 - **迭代器模式(Iterator)**:提供一种方法顺序访问一个...

    Command命令模式介绍[参照].pdf

    通过Command模式,我们可以将请求封装为一个对象,使得请求者与执行者之间解耦,同时也方便了请求的记录、撤销/重做、事务处理等复杂操作。 Command模式的核心结构包括以下几个角色: 1. 命令接口(Command):...

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

    在Command模式中,主要有四个角色: 1. **命令接口(Command)**:定义了一个执行操作的接口。每个命令都是实现了这个接口的具体类,规定了执行的操作。 2. **具体命令(Concrete Command)**:实现了Command接口,它...

    Head First 设计模式 (六) 命令模式(Command pattern) C++实现

    在这个例子中,`ConcreteCommand1`和`ConcreteCommand2`实现了`Command`接口,它们分别对应接收者`Receiver`的不同操作。`Invoker`作为调用者,可以设置不同类型的命令并调用`execute()`方法。 通过命令模式,我们...

    设计模式-命令模式(C#)代码

    命令模式的核心结构包括:**命令(Command)**、**接收者(Receiver)**、**调用者(Invoker)**和**客户端(Client)**。下面将详细介绍这些组件及其在C#中的实现。 1. **命令(Command)接口**:定义了命令的接口...

    wpf command 学习示例

    而`System.Windows.Controls.Command`则通常与控件如`Button`的内置命令一起使用,如`ButtonBase.Command`属性。 在WPF中,命令通过实现`ICommand`接口来定义。`ICommand`接口包含三个方法:`Execute`、`CanExecute...

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

    Head First设计模式书中的例子通常以生动、易懂的方式呈现,可能会通过厨房设备的遥控器来解释命令模式。例如,遥控器是请求者,它持有一系列具体的命令对象(如打开烤箱、关闭烤箱等)。当按下按钮时,遥控器调用...

Global site tag (gtag.js) - Google Analytics