知识大全 Java设计模式-----Command模式

Posted

篇首语:笛里谁知壮士心,沙头空照征人骨。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java设计模式-----Command模式相关的知识,希望对你有一定的参考价值。

Java设计模式-----Command模式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  源自

  Command模式

  一 Command模式定义:    将一个请求封装为一个对象 从而使你不同的请求对客户进行参数化 对请求排队或记录请求日志 以及支持可撤销的操作     二 模式解说    Commad模式是一种对象行为模式 它可以对发送者(sender)和接收者(receiver)完全解耦(decoupling) ( 发送者 是请求操作的对象 接收者 是接收请求并执行某操作的对象 有了 解耦 发送者对接收者的接口一无所知 )这里 请求 (request)这个术语指的是要被执行的命令 Command模式还让我们可以对 何时 以及 如何 完成请求进行改变 因此 Command模式为我们提供了灵活性和可扩展性     三 怎么使用?    ) 定义一个Command接口 接口中有一个统一的方法 这就是将请求/命令封装为对象     ) 定义具体不同命令类ConcreteCommand实现Command接口     ) 定义一个命令的调用角色Invoker     ) 定义一个命令执行状态的接收者Receiver(非必须)

  例子

  view plaincopy to clipboardprint?    public class Document

  public void display()             System out println( 显示文档内容 );       

  public void undo()             System out println( 撤销文档内容 );       

  public void redo()             System out println( 重做文档内容 );           

  public interface DocumentCommand         public void execute();   

  public class DisplayCommand implements DocumentCommand

  private Document document;

  public DisplayCommand(Document doc)             document = doc;       

  public void execute()             document display();           

  public class RedoCommand implements DocumentCommand

  private Document document;

  public RedoCommand(Document doc)             document = doc;       

  public void execute()             document redo();           

  public class UndoCommand implements DocumentCommand

  private Document document;

  public UndoCommand(Document doc)             document = doc;       

  public void execute()             document undo();           

  public class DocumentInvoker

  private DisplayCommand _dcmd;        private UndoCommand _ucmd;        private RedoCommand _rcmd;

  public DocumentInvoker(DisplayCommand dcmd UndoCommand ucmd                 RedoCommand rcmd)             this _dcmd = dcmd;            this _ucmd = ucmd;            this _rcmd = rcmd;       

  public void display()             _dcmd execute();       

  public void undo()             _ucmd execute();       

  public void redo()             _rcmd execute();           

  public class CommandTest

  public static void main(String[] args)

cha138/Article/program/Java/hx/201311/25766

相关参考

知识大全 java设计模式之Command(菜单命令)

java设计模式之Command(菜单命令)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Co

知识大全 设计模式分解java(6)

  /***/  行为模式Command  Command模式是最让我疑惑的一个模式我在阅读了很多代码后  才感觉隐约掌握其大概原理我认为理解设计模式最主要是掌握起原理构造  这样才对自己实际编程有指

知识大全 Java执行Shell&Command

Java执行Shell&Command  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  主要使用R

知识大全 设计模式分解java(2)

  当然也可以结合工厂模式来创建AbstractSpoon实例  在Java中Prototype模式变成clone()方法的使用由于Java的纯洁的面向对象特性  使得在Java中使用设计模式变得很自

知识大全 Java设计模式-----State模式

Java设计模式-----State模式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  源自  

知识大全 Java设计模式之Strategy模式

Java设计模式之Strategy模式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Strat

知识大全 Java设计模式之Observer模式

Java设计模式之Observer模式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Obser

知识大全 Java设计模式之Adapter模式

Java设计模式之Adapter模式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  通常客户类(

知识大全 Java设计模式之计数代理模式

Java设计模式之计数代理模式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  描述    计数代

知识大全 Java设计模式之Decorator模式

Java设计模式之Decorator模式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  JDK为