关闭

命令模式

标签: java命令模式设计模式
370人阅读 评论(0) 收藏 举报
分类:

命令模式就是将方法(运算业务逻辑代码)进行封装,并将该方法传递给执行者,执行者不关心所执行的命令(业务代码)是如何实现的。
java的线程池就是命令模式的一个体现。

1.示例deom说明
demo源码
demo中我使用的场景是遥控器要控制家里的电器设备。遥控器RemoteController的开关按钮只需要调用设置的命令的execute方法,而无需关注其如何实现。Command的实现类的execute方法实现了具体的业务代码,例如开灯、关灯等实际操作。

2.应用说明
命令模式在java线程池中是比较好的体现:

ExecutorService pool = Executors.newFixedThreadPool(10);
        for(int i=0;i<10;i++){
            pool.execute(new Runnable() {

                @Override
                public void run() {
                    //业务代码
                    System.out.println("");
                }
            });
        }

这里的Runnable接口跟Command接口一样,线程池execute(Runnable runnable)

这个模式是比较简单的,但在解耦方面的做用是显而易见的,命令模式一般会支持命令的撤回操作,这个如果在业务中碰到可以自己设计实现。

0
0
查看评论

设计模式之命令模式---Command Pattern

模式的定义命令模式是一个高内聚的模式,定义如下:Encapsulate a request as an object,thereby letting you parameterize clients with different requests,queue or log requests,and ...
  • hfreeman2008
  • hfreeman2008
  • 2016-08-06 10:37
  • 1578

命令模式应用场景

Command模式通常可应用到以下场景:    1 Multi-level undo(多级undo操作)      如果系统需要实现多级回退操作,这时如果所有用户的操作都以command对象的形式实现,系统可以简  &#...
  • zdsicecoco
  • zdsicecoco
  • 2016-05-06 16:06
  • 3312

命令模式(Command Pattern)(二):HeadFirst中的遥控器

一、问题描述 使用命令模式实现遥控器,遥控器上的不同按钮控制电灯的开关及亮度、天花板风扇的开关及转速等,支持撤销。 具体按钮:开灯/关灯按钮、暗光开/关按钮、风扇高速/中速/低速/关按钮、撤销按钮。 遥控器如下图所示: 遥控器担当请求者(或称为调用者)的角色,用RemoteCon...
  • jialinqiang
  • jialinqiang
  • 2013-05-18 23:15
  • 1809

Android源码中的命令模式

前面跟大家分享了装饰者模式、观察者模式、静态工厂方法、工厂方法模式,今天跟大家分享下Android源码中的命令模式。
  • sdkfjksf
  • sdkfjksf
  • 2016-10-08 13:41
  • 3146

命令模式(Command Pattern)(一):命令模式介绍

一、意图              将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。 ...
  • jialinqiang
  • jialinqiang
  • 2013-05-18 23:16
  • 2900

命令模式(遥控器模式)

一,命令模式的实现:命令模式里边一般都有以下几个角色:客户端,请求者,命令接口,命令实现,接受者,下边是简单命令模式的实现代码实现:  1  public class Client{ 2      public stat...
  • liruizhuang
  • liruizhuang
  • 2010-08-17 22:56
  • 2802

设计模式(行为型)之命令模式(Command Pattern)

在软件开发中,我们经常需要向某些对象发送请求(调用其中的某个或某些方法),但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个,此时,我们特别希望能够以一种松耦合的方式来设计软件,使得请求发送者与请求接收者能够消除彼此之间的耦合,让对象之间的调用关系更加灵活,可以灵活地指定请求接收者以及被请求的...
  • yanbober
  • yanbober
  • 2015-05-05 11:49
  • 3158

深入浅出设计模式之命令模式、适配器模式、外观模式

命令模式
  • u011531613
  • u011531613
  • 2017-03-22 20:42
  • 478

策略模式与命令模式的区别 是什么?

策略模式 把易于变化的行为分别封装起来,让它们之间可以互相替换, 让这些行为的变化独立于拥有这些行为的客户。   GoF《设计模式》中说道:定义一系列算法,把它们一个个封装起来,并且使它们可以相互替换。该模式使得算法可独立于它们的客户变化。 Command命令模式是...
  • u013700340
  • u013700340
  • 2014-04-30 16:17
  • 876

设计模式项目实战--命令模式

开通博客已经很多年了,习惯性的看别人写的技术博客,自己确从来没有写的打算。原因有两种,一是觉得写一篇好的博客确实要花费很多时间,时间=金钱吧,毕竟不是啥大师,能够做到信手拈来。二是觉得才疏学浅,写的博客有问题,怕被人拍砖,毕竟技术人员嘛,不会忽悠,有的就是自己这几年敲代码的经验,被人鄙视后,总会觉得...
  • zhangfan1212
  • zhangfan1212
  • 2014-03-14 21:03
  • 884
    个人资料
    • 访问:74874次
    • 积分:1324
    • 等级:
    • 排名:千里之外
    • 原创:59篇
    • 转载:1篇
    • 译文:0篇
    • 评论:31条