zoukankan      html  css  js  c++  java
  • java设计模式之命令模式以及在java中作用

     命令模式属于对象的行为模式。命令模式又称为行动(Action)模式或交易(Transaction)模式。

      命令模式把一个请求或者操作封装到一个对象中。命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。

    命令模式的结构

      命令模式是对命令的封装。命令模式把发出命令的责任和执行命令的责任分割开,委派给不同的对象。

      每一个命令都是一个操作:请求的一方发出请求要求执行一个操作;接收的一方收到请求,并执行操作。命令模式允许请求的一方和接收的一方独立开来,使得请求的一方不必知道接收请求的一方的接口,更不必知道请求是怎么被接收,以及操作是否被执行、何时被执行,以及是怎么被执行的。

      命令允许请求的一方和接收请求的一方能够独立演化,从而具有以下的优点:

      (1)命令模式使新的命令很容易地被加入到系统里。

      (2)允许接收请求的一方决定是否要否决请求。

      (3)能较容易地设计一个命令队列。

      (4)可以容易地实现对请求的撤销和恢复。

      (5)在需要的情况下,可以较容易地将命令记入日志。

    命令模式的优点

      ●  更松散的耦合

      命令模式使得发起命令的对象——客户端,和具体实现命令的对象——接收者对象完全解耦,也就是说发起命令的对象完全不知道具体实现对象是谁,也不知道如何实现。

      ●  更动态的控制

      命令模式把请求封装起来,可以动态地对它进行参数化、队列化和日志化等操作,从而使得系统更灵活。

      ●  很自然的复合命令

      命令模式中的命令对象能够很容易地组合成复合命令,也就是宏命令,从而使系统操作更简单,功能更强大。

      ●  更好的扩展性

      由于发起命令的对象和具体的实现完全解耦,因此扩展新的命令就很容易,只需要实现新的命令对象,然后在装配的时候,把具体的实现对象设置到命令对象中,然后就可以使用这个命令对象,已有的实现完全不用变化。

    原文链接http://www.cnblogs.com/java-my-life/archive/2012/06/01/2526972.html

  • 相关阅读:
    LightOJ 1132 Summing up Powers(矩阵快速幂)
    hdu 3804 Query on a tree (树链剖分+线段树)
    LightOJ 1052 String Growth && uva 12045 Fun with Strings (矩阵快速幂)
    uva 12304 2D Geometry 110 in 1! (Geometry)
    LA 3263 That Nice Euler Circuit (2D Geometry)
    2013 SCAUCPC Summary
    poj 3321 Apple Tree (Binary Index Tree)
    uva 11796 Dog Distance (几何+模拟)
    uva 11178 Morley's Theorem (2D Geometry)
    动手动脑
  • 原文地址:https://www.cnblogs.com/kisty/p/6134914.html
Copyright © 2011-2022 走看看