步骤 1

创建一个命令接口。

public interface Order {void execute();
}

步骤 2

创建一个请求类。

public class Stock {private String name = "ABC";private int quantity = 10;public void buy(){System.out.println("Stock [ Name: "+name+", Quantity: " + quantity +" ] bought");
   }public void sell(){System.out.println("Stock [ Name: "+name+", Quantity: " + quantity +" ] sold");
   }
}

步骤 3

创建实现了 Order 接口的实体类

BuyStock.javapublic class BuyStock implements Order {private Stock abcStock;public BuyStock(Stock abcStock){this.abcStock = abcStock;}public void execute() {abcStock.buy();}
}

SellStock.javapublic class SellStock implements Order {private Stock abcStock;public SellStock(Stock abcStock){this.abcStock = abcStock;}public void execute() {abcStock.sell();}
}

步骤 4

创建命令调用类。

import java.util.ArrayList;
import java.util.List;public class Broker {private List<Order> orderList = new ArrayList<Order>(); public void takeOrder(Order order){orderList.add(order);      }public void placeOrders(){for (Order order : orderList) {order.execute();}orderList.clear();}
}

步骤 5

使用 Broker 类来接受并执行命令。

public class CommandPatternDemo {public static void main(String[] args) {Stock abcStock = new Stock();BuyStock buyStockOrder = new BuyStock(abcStock);SellStock sellStockOrder = new SellStock(abcStock);Broker broker = new Broker();broker.takeOrder(buyStockOrder);broker.takeOrder(sellStockOrder);broker.placeOrders();}
}

步骤 6

执行程序,输出结果:

Stock [ Name: ABC, Quantity: 10 ] bought
Stock [ Name: ABC, Quantity: 10 ] sold

转载于:https://www.cnblogs.com/ganchuanpu/p/7455984.html

设计模式(六)命令模式相关推荐

  1. 设计模式 之 命令模式

    2019独角兽企业重金招聘Python工程师标准>>> 设计模式 之 命令模式 命令模式比较简单,不过多赘述 为什么需要命令模式 将"行为请求者"与"行 ...

  2. 乐在其中设计模式(C#) - 命令模式(Command Pattern)

    原文:乐在其中设计模式(C#) - 命令模式(Command Pattern) [索引页] [源码下载] 乐在其中设计模式(C#) - 命令模式(Command Pattern) 作者:webabcd ...

  3. 「设计模式(六) - Builder模式」

    「设计模式(六) - Builder模式」 一.可定制化的 电脑的组装在生活中并不陌生,大家都有电脑,当然需求不一样配置也不一样.以Macbook Pro为例,像UI设计对图像模块GPU要求比较高,跑 ...

  4. 23种设计模式之命令模式和策略模式的区别

    文章目录 概述 命令模式 策略模式 相同点 总结 概述 命令模式和策略模式确实很相似,只是命令模式多了一个接收者(Receiver)角色.它们虽然同为行为类模式,但是两者的区别还是很明显的.策略模式的 ...

  5. Head First 设计模式总结(六) 命令模式

    本文总结了<Head First 设计模式>中的命令模式 命令模式--将请求封装成"对象",以便使用不同的请求.队列或者日志来参数化其他对象.命令模式也支持撤销操作. ...

  6. Android设计模式之——命令模式

    一.介绍 命令模式(Command Pattern),是行为型设计模式之一.命令模式相对于其他的设计模式来说并没有那么多的条条框框,其实它不是一个很"规范"的模式,不过,就是基于这 ...

  7. java execute 执行成功_【JAVA】设计模式之命令模式(Command模式)的使用分析

    命令模式属于23种设计模式中行为模式中的一个,它也是一种简单实用非常普遍的设计模式. 首先看下GOF对命令模式的定义:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化:对请求排队或记录 ...

  8. 设计模式之命令模式(Command)摘录

    23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而 ...

  9. plsql执行command命令控制台出现乱码_设计模式系列 — 命令模式

    点赞再看,养成习惯,公众号搜一搜[一角钱技术]关注更多原创技术文章.本文 GitHub org_hejianhui/JavaStudy 已收录,有我的系列文章. 前言 23种设计模式速记 单例(sin ...

  10. 设计模式复习-命令模式

    #pragma once #include "stdafx.h" #include<set> #include<string> #include<io ...

最新文章

  1. golang垃圾回收概述
  2. DeeCamp 2020启动,邀请全球AI菁英共克世界变局下真实难题!
  3. 三张图看遍Linux 性能监控、测试、优化工具
  4. 公网访问_一文读懂阿里云访问公网的实现方式
  5. Blackboard Fibonacci(CF-217B)
  6. 电商标识检测的鲁棒性防御,ACM MM2021 安全AI大赛技术解析
  7. spring boot 自定义过滤器链
  8. python运维知识大全_python基础知识
  9. 大数据平台解决方案(PPT)
  10. 常用的端口号(port number)
  11. html渐变生成,css gradient 在线渐变生成工具
  12. 卸载ie里的java_怎么样卸载IE10/IE11 两种方法教你快速卸载IE10/IE11
  13. GLCC编程夏令营——LMP课题 周会分享
  14. Java之下载word文档,linux视频监控
  15. Mac 此账户尚未用于app store_App Store调整频繁!游戏App下架数量再次增加! | 8月推广报告...
  16. 创业起步的十大准备步骤
  17. SAR成像系列:【7】合成孔径雷达(SAR)成像算法-后向投影(Back Projecting)算法(附Matlab代码)
  18. 图解LeetCode06:Z字形变换
  19. Simulink 模型导出FMU
  20. 编程读取Revit中材料的渲染属性

热门文章

  1. 清华大学继续教育学院sql注入漏洞
  2. 支持取消操作和暂停操作的Backgroundworker
  3. go语言培训班多少钱
  4. 详解VS2012发布web api流程
  5. 比较顺利 - Python基础2
  6. 预测分析:R语言实现2.8 小结
  7. 浅谈Http模块,Express和Koa实现http服务
  8. 微寻,把“线下医院”带到“线上轻松问诊”
  9. CloudStack Ctrix官网版本
  10. 深入浅出ShellExecute