步骤 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. 【直播预告】云栖直播:阿里热修复产品HotFix2.0升级详解
  2. 从ADAS到无人驾驶 关键技术有哪些
  3. perl正则表达式-1
  4. C++ 获取文件大小
  5. CodeForces - 1217F Forced Online Queries Problem(线段树分治+并查集撤销)
  6. Vista系统自带IIS 7.0设置技巧详解
  7. expect巡检服务器_Shell-批量巡检服务器脚本
  8. easyUi load方法重新加载表单的数据
  9. PythonHDF5目录
  10. c语言 输入一个字符串 把其中的字符按逆序输出,输入一个字符串,把其中的字符按逆序输出。 C++...
  11. pyqt5菜鸟教程_PyQt5教程(一)——第一个PyQt5程序
  12. Camtasia 2019编辑视频文件时程序无响应的解决方法
  13. 【UE5】使用快捷键切换编辑器中英文设置
  14. 机器学习——概念理解之IoU
  15. 高一计算机课的总结,高中《信息技术》期末教学总结范文
  16. sparql 查询例子
  17. java版 设计一个程序, 输入整数l, 求边长为l的正方形面积, 比直径为l的圆形面积大多少.
  18. Go 语言 exec 实时获取外部命令的执行输出
  19. IDEA代码push到github报错 fatal:unable to access...
  20. 浙大计算机考研pq,浙大研究生电力系统分析.docx

热门文章

  1. TurboMail邮件服务器围绕用户需求 建自主创新型企业
  2. Linux命令之uname
  3. OpenXava 4.6.1 发布,Web 快速开发套件
  4. 体验是情感的(译稿)
  5. 允许root远程登录Solaris
  6. git生成public key
  7. 畅通工程//最小生成树prim
  8. Windows网络通信(二):socket异步编程
  9. 【方法整理】Oracle 获取trace跟踪文件名的几种常用方式
  10. C#线程系列讲座(1):BeginInvoke和EndInvoke方法