设计模式(六)命令模式
步骤 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
设计模式(六)命令模式相关推荐
- 设计模式 之 命令模式
2019独角兽企业重金招聘Python工程师标准>>> 设计模式 之 命令模式 命令模式比较简单,不过多赘述 为什么需要命令模式 将"行为请求者"与"行 ...
- 乐在其中设计模式(C#) - 命令模式(Command Pattern)
原文:乐在其中设计模式(C#) - 命令模式(Command Pattern) [索引页] [源码下载] 乐在其中设计模式(C#) - 命令模式(Command Pattern) 作者:webabcd ...
- 「设计模式(六) - Builder模式」
「设计模式(六) - Builder模式」 一.可定制化的 电脑的组装在生活中并不陌生,大家都有电脑,当然需求不一样配置也不一样.以Macbook Pro为例,像UI设计对图像模块GPU要求比较高,跑 ...
- 23种设计模式之命令模式和策略模式的区别
文章目录 概述 命令模式 策略模式 相同点 总结 概述 命令模式和策略模式确实很相似,只是命令模式多了一个接收者(Receiver)角色.它们虽然同为行为类模式,但是两者的区别还是很明显的.策略模式的 ...
- Head First 设计模式总结(六) 命令模式
本文总结了<Head First 设计模式>中的命令模式 命令模式--将请求封装成"对象",以便使用不同的请求.队列或者日志来参数化其他对象.命令模式也支持撤销操作. ...
- Android设计模式之——命令模式
一.介绍 命令模式(Command Pattern),是行为型设计模式之一.命令模式相对于其他的设计模式来说并没有那么多的条条框框,其实它不是一个很"规范"的模式,不过,就是基于这 ...
- java execute 执行成功_【JAVA】设计模式之命令模式(Command模式)的使用分析
命令模式属于23种设计模式中行为模式中的一个,它也是一种简单实用非常普遍的设计模式. 首先看下GOF对命令模式的定义:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化:对请求排队或记录 ...
- 设计模式之命令模式(Command)摘录
23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而 ...
- plsql执行command命令控制台出现乱码_设计模式系列 — 命令模式
点赞再看,养成习惯,公众号搜一搜[一角钱技术]关注更多原创技术文章.本文 GitHub org_hejianhui/JavaStudy 已收录,有我的系列文章. 前言 23种设计模式速记 单例(sin ...
- 设计模式复习-命令模式
#pragma once #include "stdafx.h" #include<set> #include<string> #include<io ...
最新文章
- 【直播预告】云栖直播:阿里热修复产品HotFix2.0升级详解
- 从ADAS到无人驾驶 关键技术有哪些
- perl正则表达式-1
- C++ 获取文件大小
- CodeForces - 1217F Forced Online Queries Problem(线段树分治+并查集撤销)
- Vista系统自带IIS 7.0设置技巧详解
- expect巡检服务器_Shell-批量巡检服务器脚本
- easyUi load方法重新加载表单的数据
- PythonHDF5目录
- c语言 输入一个字符串 把其中的字符按逆序输出,输入一个字符串,把其中的字符按逆序输出。 C++...
- pyqt5菜鸟教程_PyQt5教程(一)——第一个PyQt5程序
- Camtasia 2019编辑视频文件时程序无响应的解决方法
- 【UE5】使用快捷键切换编辑器中英文设置
- 机器学习——概念理解之IoU
- 高一计算机课的总结,高中《信息技术》期末教学总结范文
- sparql 查询例子
- java版 设计一个程序, 输入整数l, 求边长为l的正方形面积, 比直径为l的圆形面积大多少.
- Go 语言 exec 实时获取外部命令的执行输出
- IDEA代码push到github报错 fatal:unable to access...
- 浙大计算机考研pq,浙大研究生电力系统分析.docx