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