当前位置: 首页 > article >正文

【设计模式 13】命令:覆水能收

这一课讲命令模式。什么在变决策需要记录、排队、撤销。怎么挡把决策封装成命令对象可执行可回滚。林衍那次决策失误后来集团内部管它叫黑色十月。起因是赵闯带回来一条消息一家新晋竞争对手拿到了十亿级融资开始用补贴战打市场。对方的核心策略简单粗暴——同品质产品低于成本价销售靠融资的钱烧出市场份额。林衍在战略会上拍板应战。全线产品降价百分之二十抢在对手前面把价格打到底。陈敏当时就反对“百分之二十你知道这意味着什么吗全年毛利率从百分之三十二降到百分之十四。如果我们抢不到足够的市场份额来弥补这一年的利润就白干了。”林衍说“战争打的是速度。先抢份额利润明年追回来。”赵闯全力执行。降价通知发给了全部经销商终端价格更新到所有渠道电商页面同步改价返点方案重新计算。整个集团像一台机器一样用了四十八小时完成了全面降价。两周后数据出来了。陈敏把报表放在林衍桌上没说话。林衍看了五分钟。销量增长了百分之十一。不是百分之三十不是百分之五十。百分之十一。利润呢少了十九亿。更糟的是竞争对手根本没跟降。他们拿了融资不假但补贴战的消息是赵闯从行业饭局上听来的二手情报。对方拿了钱是用来建产线、做研发的不是用来烧补贴的。赵闯的情报错了。林衍基于错误情报做了决策。而决策已经执行了两周不可逆转。林衍找陈敏“能撤回吗”陈敏看着他像在看一个问能不能把倒出去的水收回来的人。“价格已经通知了全部经销商。终端价格已经改了。返点已经结算了一期。你现在涨回去经销商觉得你在玩他们。不涨回去十九亿已经没了。”林衍那天晚上一个人在办公室坐到凌晨两点。第二天早上林衍叫了一个会。不是复盘会——复盘以后再做。他要的是一件更根本的东西。“如果下次我做了一个决策执行了一半发现是错的我能不能撤回”陈敏说“那要看决策执行到了哪一步。如果只是内部通知可以撤。如果已经到了终端撤不了。”“如果到了终端但是刚到呢比如只执行了一天”“理论上可以改回来。但你要知道改回来需要做哪些事——通知经销商、改价格、调返点、更新页面——跟执行决策的时候一样反过来做一遍。”林衍在白板上写了一行字每一个重大决策执行前必须封装成可撤销的操作。“什么叫封装成可撤销的操作”林衍说“就是每一次决策不是’直接执行’而是变成一个指令。指令包含三样东西执行动作、撤销动作、执行记录。执行的时候做’执行动作’撤回的时候做’撤销动作’。不管决策涉及到多少个部门、多少个系统撤回就是调一下’撤销’。”陈敏问“那如果执行了一半呢比如经销商已经收到通知了但终端还没改价”“指令要记录执行到哪一步了。撤回的时候从当前步骤往回退。不是一刀切回原点是逐步回滚。”林衍在白板上写的那个制度——每一个决策封装成可撤销的指令——在程序设计里有一个名字命令模式。把做什么封装成一个命令对象调用方只持有命令。命令可以排队、存储、撤销。覆水能收。stores history«interface»Commandexecute()undo()PricingDecision-amount: float-receiver: BusinessUnitexecute()undo()ExpansionDecision-region: string-receiver: BusinessUnitexecute()undo()DecisionLog-history: Command[]submitCommand(cmd: Command)undoLast()BusinessUnitapplyPriceChange(amount)revertPriceChange(amount)applyExpansion(region)revertExpansion(region)林衍的决策日志就是 DecisionLog每一条定价或扩张指令都是一个 Command错了就调 undo 回滚。孙子说先为不可胜以待敌之可胜。“先让自己处于不会输的位置再等赢的机会。命令模式做的就是先让自己不会输”——每一个决策都带着退路错了能撤不至于一错到底。本文所有人物、情节、公司名均为虚构如有雷同纯属巧合。

相关文章:

【设计模式 13】命令:覆水能收

这一课讲命令模式。什么在变:决策需要记录、排队、撤销。怎么挡:把决策封装成命令对象,可执行可回滚。林衍那次决策失误,后来集团内部管它叫"黑色十月"。 起因是赵闯带回来一条消息:一家新晋竞争对手拿到了十…...

程序员想开 AI 会员:ChatGPT、Claude、Gemini 这些该怎么充值更省心?

最近很多程序员开 AI 会员,已经不是为了“尝鲜”了。更多时候是因为真的用得上:代码报错看半天,想让 AI 帮忙缩小排查范围。 接手老项目,想让 AI 先帮忙解释模块逻辑。 接口文档太长,想快速整理字段和调用方式。 READM…...

摆脱论文困扰!高效论文写作全流程AI论文工具推荐(2026 最新)

论文写作全流程可拆解为文献调研→选题/开题→大纲/初稿→文献综述→降重/去AI味→润色/格式→查重/投稿七大环节,2026年AI论文工具按环节精准匹配,兼顾中文适配、降重能力、去AI痕迹、学术合规四大核心需求,覆盖免费/付费、通用/垂直场景。一…...

xclabel是一款开源图像标注与模型训练工具,采用Python+Flask开发,跨平台支持Windows/Linux/Mac

xclabel 作者:北小菜作者主页:https://www.yuturuishi.comgitee开源地址:https://gitee.com/Vanishi/xclabelgithub开源地址:https://github.com/beixiaocai/xclabel 软件介绍 xclabel是一款开源图像标注与模型训练工具&#x…...

ChatGPT API调用费用暴涨?揭秘token计费陷阱:5个被90%开发者忽略的隐性成本源

更多请点击: https://intelliparadigm.com 第一章:ChatGPT API调用费用暴涨?揭秘token计费陷阱:5个被90%开发者忽略的隐性成本源 ChatGPT API 的账单突增,往往并非源于请求量激增,而是被 token 计费机制中…...

护照照片怎么在手机上拍好?2026年用微信小程序搞定的完整方案

很多人做护照照片默认找线下照相馆,但其实用手机微信小程序这个组合已经完全够用。微信里有个叫多多职业照的小程序在处理各类证件照的需求上效率比较高,这篇文章就详细拆解一下这个方向,搭配同家的立得一寸照、奈斯证照助手、抠图喵作为补充…...

3步搞定M3U8视频下载:告别在线播放限制的终极方案

3步搞定M3U8视频下载:告别在线播放限制的终极方案 【免费下载链接】N_m3u8DL-CLI-SimpleG N_m3u8DL-CLIs simple GUI 项目地址: https://gitcode.com/gh_mirrors/nm3/N_m3u8DL-CLI-SimpleG 你是否曾遇到过这样的烦恼?在线观看的视频无法保存&…...

NotebookLM视频处理突然变慢?紧急排查清单:GPU卸载阈值、音频采样率陷阱、语言模型缓存泄漏

更多请点击: https://codechina.net 第一章:NotebookLM视频转文字 NotebookLM 原生不支持直接上传视频文件进行转录,但可通过将视频中的音频提取为标准格式(如 WAV 或 MP3),再借助 Google 的 Speech-to-Te…...

【204期】异地组网一键联机工具

想和朋友异地联机打单机游戏,结果发现没有公网IP连不上?或者居家办公想访问公司局域网里的文件,搞了半天搞不定?今天聊的这类异地组网、内网穿透工具,就是专门解决这些问题的。它能把一个个单独的局域网连接起来&#…...

回归测试:确保 Harness 更新不破坏现有功能

回归测试实战指南:如何确保Harness平台更新不破坏现有CI/CD核心功能? 摘要/引言 你有没有遇到过这种场景:为了用上Harness新出的金丝雀发布优化功能,团队兴高采烈更新了平台版本,结果第二天全公司一半的发版流水线集体挂了?跨阶段传参失效、K8s部署权限报错、自定义插件…...

大模型时代的技术人:要么驾驭AI,要么被AI驾驭——致软件测试从业者

测试者的新分水岭当ChatGPT在2022年底横空出世时,很多人还只是把它当作一个更会聊天的玩具。然而,仅仅数月之后,当GitHub Copilot 开始自动补全测试脚本,当AI能够在几秒钟内生成数十条高覆盖率的测试用例,当一张手绘草…...

AI测试工具百花齐放,选型之前先搞懂这4个核心问题

在软件测试领域,AI 测试工具正以前所未有的速度涌现。从智能用例生成、缺陷预测到自愈型自动化测试,厂商们构建起一个眼花缭乱的技术矩阵。然而,当团队真正面临选型决策时,却发现“百花齐放”往往意味着“乱花渐欲迷人眼”。许多团…...

新手必学——git日常提交手册

对于编程新手来说,Git 是必备的开发工具,也是日常写代码、保存代码、同步代码的核心技能。很多新手写代码翻车、代码丢失、版本混乱、多人协作冲突,本质都是不会正确使用 Git 提交代码。这篇手册专为新手打造,不讲复杂原理&#x…...

【Go Interface】接口诞生的意义

结论:接口(Interface)诞生的唯一意义:解耦接口的诞生,是为了解决软件工程里最致命的痛点:“上层代码”被“底层细节”死死绑架。没有接口时的痛苦假设你的 naga 模块现在要保存心跳数据。 第一周&#xff0…...

Flink架构与集群部署(一)

Apache Flink架构Flink组件栈在Flink的整个软件架构体系中,同样遵循这分层的架构设计理念,在降低系统耦合度的同时,也为上层用户构建Flink应用提供了丰富且友好的接口。上图是Flink基本组件栈,从上图可以看出整个Flink的架构体系可…...

【Go i18n】TOML语言包

一、VS Code 必备的 TOML 插件1. Even Better TOML(核心高亮与语法检查 👑)搜索关键字:Even Better TOML为什么要装:它是目前全网公认第一的 TOML 插件。装上它之后,你的 .toml 文件不仅会变得色彩斑斓&…...

【金蝶云星空】出纳做账-付款退款单使用场景

学习目标学习本内容后,您将掌握如何使用付款退款单。业务场景付款退款单 付款退款单与付款业务对应,处理付款业务所发生的退款,包括采购业务付款的退款或者其他业务付款的退款。支持手工新增或者关联应付系统负数的应付单、其他应付单生成付…...

Apache Flink 快速入门

Flink开发环境准备学习一门新的编程语言时,往往会从"hello world"程序开始,而接触一套新的大数据计算框架时,则一般会从WordCount案例入手,下面以大数据中最经典入门案例WordCount为例,来编写Flink代码&…...

如何用免费纹理打包器优化游戏性能:5个实战技巧提升加载速度

如何用免费纹理打包器优化游戏性能:5个实战技巧提升加载速度 【免费下载链接】free-tex-packer Free texture packer 项目地址: https://gitcode.com/gh_mirrors/fr/free-tex-packer Free Texture Packer 是一款完全开源的精灵表生成工具,专门为游…...

基于 ComfyUI 本地部署 的「图像 + 音频 → 口型匹配 + 自动运镜」MV 全流程指南

基于 ComfyUI 本地部署 的「图像 + 音频 → 口型匹配 + 自动运镜」MV 全流程指南 适用人群:有一定电脑(Windows / macOS / Linux)操作经验、显卡(GPU)支持 CUDA/ROCm、能自行安装 Python 第三方库的技术爱好者。 目标:输入一张人像图片 + 一段伴奏/人声音频,自动生…...

基于OpenHarmony的智慧农业控制系统-硬件部分【1】

1.整体设备2.硬件清单:一、主控单元(边缘网关)硬件名称型号/规格数量备注小熊派开发板BearPi-HM Nano(搭载 Hi3861 芯片,支持 OpenHarmony LiteOS)1块核心控制单元,集成 Wi-Fi,负责数…...

手把手教你从零搭建 MCP Server:AI 连接万物的保姆级实战教程

为什么要学 MCP? 说实话,最近半年 AI 开发圈最火的协议就是 MCP(Model Context Protocol)了。你可能已经用上了各种 AI 助手,但有没有想过:这些 AI 怎么连接你的数据库?怎么读你的本地文件&…...

萨科微宋仕强“华强北山寨手机”研究

萨科微宋仕强“华强北山寨手机”研究(十六),手机的灰色产业链。华强北每个手机柜台背后都有灰色供应链支撑。如香港手机比华强北便宜,就通过各种渠道从香港走私过来。沙头角的中英街两边分属于香港和深圳,香港一侧的走…...

Vue大屏自适应解决方案:如何应对多分辨率设备下的数据可视化挑战

Vue大屏自适应解决方案:如何应对多分辨率设备下的数据可视化挑战 【免费下载链接】v-scale-screen Vue large screen adaptive component vue大屏自适应组件 项目地址: https://gitcode.com/gh_mirrors/vs/v-scale-screen 在数字化转型浪潮中,企业…...

毕业论文神器!2026年好用AI论文平台榜单,高质初稿轻松写

2026 年实测 10 款主流 AI 论文工具,千笔AI以全流程覆盖 语义级降重 免费查重领跑综合榜;ThouPen 稳坐留学生毕业全流程工具头把交椅;免费工具中DeepSeek Scholar、豆包学术版表现亮眼,30 分钟即可生成万字高质量初稿&#xff0…...

良心盘点!2026AI写作辅助软件榜单(覆盖 99% 毕业论文需求)

本文精选13 款2026 年实测 AI 论文工具,按全流程全能型、垂直领域专精型、润色降重专家、文献管理助手四大类别排序,覆盖从选题到定稿全链路,适配本科 / 硕博 / 期刊全场景,附选型速查表与避坑指南,帮你快速找到最佳拍…...

毕业论文难写?2026年AI论文平台排行榜权威发布,轻松定稿不是梦!

写论文效率低、熬夜赶稿、查重不过关?别慌!2026 年最新 AI 论文写作软件排行榜来了,覆盖选题、大纲、初稿、润色、降重、格式、文献引用全流程,帮你精准匹配最适合的学术助手,彻底告别论文内耗!&#x1f3c…...

传统开发VS低代码开发,谁更胜一筹?

低代码开发,让企业应用搭建像搭积木一样简单 在当今数字化时代,企业对于应用程序的需求日益增长。然而,传统的软件开发方式往往面临着开发周期长、成本高、技术门槛高等问题,这使得许多企业在数字化转型的道路上举步维艰。而低代…...

3PEAK思瑞浦 TP321-DF0R DFN1X1-4 运算放大器

特性 通用型,低成本: 增益带宽积:1MHz 低静态电流:45A/放大器 偏移电压:最大5.0毫伏 偏移电压温度漂移:2uV/C 输入偏置电流:10pA 共模抑制比/电源抑制比:90dB 单位增益稳定 轨到轨输入和输出 过驱动输入无相位反转 供电电压范围: TP321-DFOR: 2.1V 至 5.5V 其他部分…...

抖音下载神器:免费批量下载抖音视频、图集、音乐和直播回放完整指南

抖音下载神器:免费批量下载抖音视频、图集、音乐和直播回放完整指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser f…...