Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >代码江湖:代码侠传奇之《设计模式真经》

代码江湖:代码侠传奇之《设计模式真经》

作者头像
AI.NET 极客圈
发布于 2025-04-13 08:36:53
发布于 2025-04-13 08:36:53
450
举报
文章被收录于专栏:AI.NET极客圈AI.NET极客圈

烟火里的江湖旧忆

暮色里,代码侠的电动车在巷口急刹,外卖箱里的热汤晃出细响,恍惚间竟像当年工厂堡锻造炉的轰鸣。难得休息之余,他抹了把额头的汗,扶了扶敞开网约车的腰。后视镜里映出自己晒黑的脸,还有那颠炒粉的手腕时常油污满满。一阵微风拂过,忽然想起二十年前在"单例庐"初遇师父的清晨——老者递过玉坠时,指尖符文与此刻大街里的灯光重叠。

欲知代码侠为何生活得如此耐人寻味,就请各位看官一路看到底。

楔子·鸿蒙初开

代码江湖自鸿蒙初辟便有九重天域,每一域皆藏玄机。凡人若能悟透二十三般设计真诀,便可登临"代码圣手"之境。

然江湖纷争不断,有人以"反模式"为祸,令无数代码大厦崩塌于朝夕。

这一日,终南山巅的"单例庐"前,一位青衫少年正接受师父的临终考验。

"徒儿,单例真诀讲究天地唯一,不容复刻,你可记得如何构建?"白眉秃头老者抚须而问。

少年代码侠双手结印,指尖泛起幽蓝光芒:"需将构造之法设为私密,留一全局入口,遇强则强,遇弱则隐,以双重校验锁护其根本。"

老者颔首,将一枚刻有"Σ"符号的玉坠系在少年颈间:"此去江湖,若遇疑难,可往'工厂堡'寻你大师兄。记住,设计之道,在乎'解耦'二字..."话音未落,老者身形渐淡,唯余山风呼啸。

第一章·初入江湖·创建五式

第一式·工厂堡遇袭(工厂方法模式)

三日后,代码侠行至大漠深处的"工厂堡",却见堡门紧闭,箭矢如雨。堡内传来大师兄的传音:"贤弟速去兵器库!取'工厂剑'!"

推开暗门,只见十二柄长剑悬浮空中,剑柄刻着不同兵器名称。代码侠忆起师父所言:"工厂者,造器之法也。父厂定规,子厂造形,遇刀造刀,遇剑造剑,变化随需而变。"他轻喝一声:"长剑!"居中青釭剑应声而落,剑身上"Product"符文闪烁。

持剑杀入重围,见敌方喽啰各持不同兵刃,代码侠旋身变招,每刺出一剑,便有对应兵器虚影浮现。——这正是工厂方法的精髓:定义接口,由子类决定实例化对象,将"类的实例化"延迟到子类。

第二式·抽象工厂的奥秘(抽象工厂模式)

factory堡内,大师兄正在锻造炉前捶打:"贤弟可知,若要打造整套装备,单靠一柄剑如何够用?"说罢,抛出一套"防具图纸",图纸上赫然有"武器工厂""防具工厂"等字样。

代码侠顿悟:"抽象工厂,乃工厂的工厂!可创建相关或依赖对象的家族,无需指定具体类。"当下结印召唤"防具工厂",同时生成刀、甲、靴三件套,符文相互呼应,形成套装加成。此招妙在将一系列产品对象的创建封装,客户端无需知晓具体实现,只需与抽象接口交互。

第三式·单例庐的传承(单例模式)

夜宿堡中,大师兄忽然指着墙上古画:"你看这'独孤九剑',世间唯有一套,此乃单例真诀的至高境界。"画中剑客身周环绕"private constructor""static instance""get Instance()"等剑诀。

代码侠轻抚颈间玉坠,想起师父曾说:"单例者,全局唯一也。需防多线程侵扰,以双重检查锁固其根本,或借静态内部类延迟加载,更可凭枚举杜绝反射破解。"此模式如同掌门令牌,全派仅此一枚,避免资源浪费,确保状态统一。

第四式·建造者的匠心(建造者模式)

次日,二人途经"uilder村",见匠人正在组装巨型机关兽。匠人将头部、躯干、四肢分模块打造,最后由总装师组合成型。大师兄笑道:"此乃建造者模式,将复杂对象的构建与表示分离,同一步骤可造不同表示。"

代码侠观察发现,每个部件都有独立的建造接口,总装师只需调用建造步骤,无需关心细节。正如机关兽可换钢甲或木甲,核心在于建造者的具体实现。此招适用于多步骤构建对象,且步骤稳定、具体产品易变的场景。

第五式·原型的幻影(原型模式)

离开uilder村,忽遇流沙陷阱,代码侠险被吞没。千钧一发之际,大师兄抛出一张符纸,符纸化作十道身影引开流沙。"此乃原型模式,"大师兄解释,"通过复制现有对象创建新对象,省去重复初始化步骤。"

代码侠细看符纸,发现其上刻着"clone()"符文,可快速复制对象。若对象构建复杂,原型模式便如幻影分身,直接复制现有实例,效率极高。但需注意深克隆与浅克隆之别,若涉及引用对象,需逐层复制,否则易生残影。

第二章·结构之妙·七巧玲珑

第六式·适配器的变奏(适配器模式)

二人行至"适配镇",见一武者手持西洋剑,却在施展少林棍法,招式生硬。大师兄指点:"此人需'适配器'相助,将西洋剑的接口转换为少林棍的接口。"

代码侠观察到,镇上铁匠正打造"转换器",将不同兵器的握柄接口统一。适配器模式如同翻译,让原本不兼容的接口协同工作,分为类适配器与对象适配器,前者继承适配,后者组合适配,各有妙用。武者装上适配器后,剑招竟与棍法浑然一体。

第七式·桥接的阴阳之道(桥接模式)

镇外有座"Bridge桥",桥身由内功层与外功层组成,每层可独立修炼。大师兄道:"桥接模式,乃分离抽象与实现,使两者可独立变化。正如内功(抽象)与外功(实现),各成体系却又相互配合。"

代码侠闭目感应,发现抽象层定义"武学"接口,实现层细分"少林""武当"等流派,每派又有"拳""剑"等功法。桥接模式如同架设桥梁,让抽象与实现解耦,可动态组合,避免多层继承的臃肿,正如不同内功可搭配不同外功,衍生千变万化的招式。

第八式·组合的帮派之争(组合模式)

前方忽现帮派火并,大帮由分舵、堂口、弟子组成,层级分明。大师兄道:"此乃组合模式,将对象组合成树形结构,统一对待单个对象与组合对象。"

代码侠见帮主可对整个帮派发号施令,分舵主可对堂口下令,底层弟子只需执行,无论对象是单个还是组合,接口统一。此模式如同江湖门派,掌门、长老、弟子构成树形结构,客户端无需区分个体与整体,简化操作,体现"部分-整体"的层次结构。

第九式·装饰的叠甲之术(装饰模式)

火并中,一武者不断给自己叠加护盾,每次叠加都增强防御。大师兄笑道:"此乃装饰模式,动态给对象添加职责,比继承更灵活。"

代码侠细看,护盾分为"木盾""铁盾""玄冰盾",每层护盾都包裹着核心武者,且遵循相同的防御接口。装饰模式如同给装备镶嵌宝石,可层层叠加,新增功能不修改原有代码,符合开闭原则。武者最终身披九层护盾,竟能硬接大招而不退。

第十式·外观的江湖秘卷(外观模式)

战后,二人进入一家"Facade客栈",店小二一声令下,后厨、客房、安保各司其职,无需客人逐一吩咐。大师兄道:"外观模式,为复杂子系统提供统一接口,简化交互。"

客栈内部分为多个子系统,店小二作为外观角色,封装了所有复杂流程。客人只需告诉店小二需求,无需知晓后厨如何备菜、客房如何打扫。此模式如同江湖百晓生,将复杂信息整合成简单接口,降低客户端使用成本,提升易用性。

第十一式·享元的聚沙成塔(享元模式)

客栈后院,码农们正在抄写武功秘籍,奇怪的是相同内容的秘籍只需写一次,众人共享。大师兄解释:"享元模式,共享对象以减少内存开销,区分内部状态与外部状态。"

代码侠发现,秘籍的文字内容(内部状态)是共享的,而持有者的批注(外部状态)各有不同。享元模式如同江湖中的通用武学,招式本身不变,修炼者可加入个人领悟。通过共享对象,减少重复创建,提升性能,尤其适用于大量细粒度对象的场景。

第十二式·代理的替身之道(代理模式)

忽有密使来报,说前方客栈被"代码魔头"的代理分身占据。大师兄凝重道:"代理模式,代表其他对象处理访问,可分为静态代理与动态代理。"

二人赶到时,只见无数虚影阻拦去路,每个虚影都持有"代理令牌",需验证身份方可通过。代理模式如同江湖中的替身使者,在访问真实对象前进行预处理,如权限校验、缓存、日志等。代码侠祭出"动态代理剑",根据接口实时生成代理类,绕过虚影直取核心。

第三章·行为之魂·十二面观

第十三式·策略的百变奇招(策略模式)

穿过代理迷阵,来到"Strategy峡谷",谷中三条路分别布满火焰、寒冰、毒气。大师兄取出三枚玉简:"此乃三种通行策略,可动态切换。"

代码侠手持玉简,发现每种策略都实现了"通行"接口,分别对应"防火术""破冰诀""驱毒功"。策略模式如同江湖中的百变招式,针对不同场景选择不同策略,算法家族可互换,客户端只需知道策略接口。他根据路况切换策略,顺利通过峡谷,此招妙在将算法封装,便于扩展与维护。

第十四式·模板的定式传承(模板方法模式)

峡谷尽头有座"Template寺",寺中僧人演练拳法,招式顺序固定:起手式→攻击→防守→收势,但每招细节各有不同。大师兄道:"模板方法模式,定义算法骨架,具体步骤由子类实现。"

代码侠观察到,拳法的整体流程(模板)不变,但"攻击"可以是拳、掌、指,"防守"可以是盾、闪、卸力。此模式如同江湖中的基础武学框架,后辈在固定流程中创新细节,既保证规范,又允许变化,常见于框架设计,让子类专注于特定步骤的实现。

第十五式·观察者的千里传音(观察者模式)

寺内忽响警钟,所有僧人同时做出反应:有的取兵器,有的护经文,有的传信求援。大师兄指点:"观察者模式,对象间存在依赖关系,当主题变化时,所有观察者都会收到通知。"

代码侠感应到,警钟作为主题(被观察者),僧人作为观察者,通过"订阅-发布"机制联动。此模式如同江湖中的情报网,一处有警,八方响应,解耦主题与观察者,支持广播通信。但需注意循环依赖与内存泄漏,如同情报网若管理不善,反会泄露机密。

第十六式·迭代器的探囊取物(迭代器模式)

离开寺庙,二人在市集见一老者用竹筷在百宝囊中夹取物件,每次只取一件,顺序不乱。大师兄道:"迭代器模式,提供统一接口遍历集合,无需暴露内部结构。"

百宝囊作为聚合对象,竹筷是迭代器,封装了遍历逻辑。代码侠想起数据结构中的链表、数组,无论内部如何存储,迭代器都提供相同的next()、hasNext()方法。此模式如同江湖中的探宝口诀,按顺序探寻宝物,避免客户端与集合内部结构耦合,简化遍历操作。

第十七式·责任链的击鼓传花(责任链模式)

市集深处,一张悬赏令在江湖人士手中传递,无人能接便传给下一位。大师兄道:"责任链模式,将请求的处理者连成链,请求沿链传递,直至有处理者响应。"

代码侠见每个处理者都有"下一节点"指针,若自己无法处理便转发。此模式如同江湖中的任务委派,小喽啰处理小事,大事逐级上报至掌门。优点是解耦请求发送者与处理者,灵活分配职责;缺点是可能链过长导致效率低下,需合理控制链的长度。

第十八式·命令的令牌调度(命令模式)

忽闻马蹄声急,一骑手抛下雨夜令牌,众豪杰立刻行动:有人备马,有人掌灯,有人整装备。大师兄道:"命令模式,将请求封装为对象,可参数化、队列化、日志化。"

令牌即命令对象,包含接收者(如马夫、灯童)与具体操作(备马、掌灯)。此模式如同江湖中的调令,将指令与执行者解耦,支持撤销(如收回令牌)、重做等操作。代码侠见令牌上刻着"Command"符文,可将请求排队或记录日志,便于追溯与管理。

第十九式·备忘录的时光回溯(备忘录模式)

前方断崖边,一武者重伤濒死,却突然恢复如初——他祭出了"Memo玉简",回溯到三招前的状态。大师兄解释:"备忘录模式,在不破坏封装的前提下,捕获对象状态并保存,可恢复至先前状态。"

玉简中存储着武者的血量、内力、招式进度等状态,属于原发器的私有状态。此模式如同江湖中的时光锦囊,关键时刻回溯状态,避免损失。需注意备忘录的存储成本,若状态过多,需配合原型模式或序列化优化。

第二十式·状态的时势变换(状态模式)

断崖下的"State洞"中,代码侠发现一奇人,遇强则强,遇弱则弱,状态随对手变化而切换。大师兄道:"状态模式,对象的行为随状态改变而改变,将状态封装为独立类。"

奇人身上有"战斗状态""防御状态""逃跑状态"等多个状态对象,当前状态决定其行为。此模式如同江湖中的心境变化,暴怒时招式刚猛,恐惧时身法灵动,通过状态切换改变行为,避免大量条件判断,使代码更易维护。

第二十一式·访问者的百家之鉴(访问者模式)

出洞后,遇一"Visitor居士"正在点评各派武功,对少林棍法评头论足,对武当剑法也能说出一二三。大师兄道:"访问者模式,将数据结构与作用于结构上的操作解耦,操作可扩展而不修改数据结构。"

居士作为访问者,遍历由不同节点(如少林弟子、武当弟子)组成的对象结构,对每个节点执行不同操作。此模式如同江湖中的武学评论家,能对各种门派武学进行独特分析,新增评论无需修改门派本身,符合开闭原则,但需注意数据结构的稳定性。

第二十二式·中介者的江湖中枢(中介者模式)

行至"Mediator城",只见城中万事皆由"城主府"协调:商人交易需报备,武者比武需审批,连百姓吵架都有调解人。大师兄道:"中介者模式,用中介对象封装对象间的交互,使对象无需直接依赖。"

城主府作为中介者,各对象(商人、武者、百姓)只与中介者交互,避免两两相连的复杂关系。此模式如同江湖中的镖局,协调各方利益,减少对象间的耦合,简化交互逻辑。但中介者可能成为瓶颈,需合理设计,避免过度集中。

第二十三式·解释器的符文密语(解释器模式)

最终,二人来到"Interpreter圣山",山壁刻满古老符文,每道符文都需特定解法。大师兄郑重道:"此乃设计模式的终式——解释器模式,定义语言的文法,并解析文法。"

代码侠运转内力,发现每个符文对应一个表达式类,如"加法符文""条件符文",通过组合这些表达式可解释复杂语句。此模式如同江湖中的密语解码,将特定领域的语言拆解为语法规则,用于解析、执行。虽应用场景有限,但在规则引擎、脚本解释等领域至关重要。

终章·代码魔头的末路

忽有黑云压城,代码魔头现身,周身环绕"反模式"黑雾:全局变量如毒雾弥漫,深层继承如锁链缠身,大量if-else如乱麻交织。

"小辈,你习得二十三式又如何?看我反模式大军!"魔头挥手,无数重复代码怪、紧耦合兽、僵化设计妖涌来。

代码侠冷笑,祭出"设计模式套装":以单例玉坠定核心,工厂剑斩重复,适配器转换怪招,桥接术分阴阳,组合拳破僵化,装饰甲叠防御,策略玉简变招式,观察者眼观六路,责任链传递压力,命令令牌调兵马...

激战三日,魔头终现破绽。代码侠抓住其"全局状态"命脉,以备忘录回溯其关键状态,用访问者解析其弱点,最后以中介者协调二十三式合击,只见金光闪过,反模式灰飞烟灭。

江湖恢复平静,代码侠站在圣山之巅,看着颈间玉坠上的"Σ"符号,终于明白师父所言:"设计之道,非止技巧,乃平衡之术。解耦而不分散,聚合而不臃肿,复用而不僵化,扩展而不紊乱。"

此后,代码侠遍历九重天域,传授二十三式,江湖流传起新的传说——凡遵循设计模式者,代码如诗,架构如堡,可抵万难,可传千古。而那本记录着二十三式的《代码江湖志》,也成为无数码农心中的传世经典。

外传·代码侠的市井人生

代码侠在圣山之战后,常于月夜擦拭手中的工厂剑,剑身上 "Product" 符文虽依旧璀璨,却映出他眼底的疲惫。江湖传言他力克反模式,却无人知他每日在 "需求坟" 中修补甲方反复横跳的代码,三更改接口、五更调兼容,内存泄漏如心魔缠体,单元测试似紧箍咒加身。而时不时出现的调整名单更让自己心乱如麻。终于在某个加班至子时的夜晚,他望着满屏红叉冷笑一声,扯下颈间玉坠 —— 这天地唯一的单例,终究扛不住灵魂深处的焦虑

代码侠摘下颈间泛着蓝光的单例玉坠,在长安城租了间临街小屋。曾经敲代码的手,如今握着外卖箱穿梭街巷,暴雨天也能精准避开积水路段,像极了当年调试程序时找bug的敏锐。他的电动车后座总绑着个褪色帆布包,装着备用充电器和防水手机套,如同从前给系统写的容错模块——只不过现在守护的,是热乎的餐盒和客户的好评。送外卖爬楼梯时会数台阶,像在数曾经项目里的层级嵌套。

偶尔穿上格子衫开网约车,他会把座椅调得比标准姿势低两厘米,说这样看后视镜的角度最“舒适”。遇到赶时间的乘客,他总能在单行道和步行街之间走出“近路”,方向盘打得比当年敲键盘还稳。有次载着个抱着吉他的姑娘,他特意绕路经过护城河,说“这条路的晚风适合听音乐”,后视镜里映着姑娘惊喜的笑脸,比代码跑通时的成就感更暖。

最热闹的是街角的炒粉摊。三尺铁锅支在红泥炉上,油香混着烟火气漫出来。他记得每个常客的口味:学生要多加醋,环卫工喜欢焦脆的锅巴,穿西装的上班族总在加班后点份加蛋炒粉。颠锅时手腕翻转,粉在铁锅里划出银弧,火光映着他不再年轻却舒展的眉眼——比起当年在写字楼改需求,此刻围裙上的油渍、食客的一句“老板,再来份”,更让他觉得踏实。

深夜收摊,他会坐在小马扎上喝碗凉茶。远处的灯火明灭,像极了曾经调试过的服务器指示灯。但现在他不再焦虑版本迭代,只关心明天的粉够不够新鲜,电动车电池能跑多远。江湖传说渐渐淡了,可这人间的烟火,却让代码侠真正找到了归处。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-04-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI.NET极客圈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
设计模式 ☞ 概述
  设计模式是软件设计中常见问题的典型解决方案。 它们就像能根据需求进行调整的预制蓝图, 可用于解决代码中反复出现的设计问题。设计模式与方法或库的使用方式不同, 很难直接在自己的程序中套用某个设计模式。 模式并不是一段特定的代码, 而是解决特定问题的一般性概念。 可以根据模式来实现符合自己程序实际所需的解决方案。   人们常常会混淆模式和算法, 因为两者在概念上都是已知特定问题的典型解决方案。 但算法总是明确定义达成特定目标所需的一系列步骤, 而模式则是对解决方案的更高层次描述。 同一模式在两个不同程序中的实现代码可能会不一样。算法更像是菜谱: 提供达成目标的明确步骤。 而模式更像是蓝图: 可以看到最终的结果和模式的功能, 但需要自己确定实现步骤。
Demo_Null
2020/12/16
3850
设计模式 ☞ 概述
Java二十三种设计模式-中介者模式(22/23)
本文深入探讨了中介者模式,这是一种行为型设计模式,通过定义一个中介者对象来简化对象间的通信,降低耦合度,并提高系统的模块化,同时提供了实现示例、使用场景、优缺点分析、与其他设计模式的比较,以及最佳实践和替代方案。
正在走向自律
2024/12/18
1740
Java二十三种设计模式-中介者模式(22/23)
武林秘籍之设计模式迷你手册
编程是一个江湖,江湖之大,鱼龙混杂,一部分江湖人士乃虾兵蟹将,一不小心就被一箭射死,我们称之为“码农”,这些人事江湖的重要组成部分,他们承担着堆砌代码,实现功能设计的使命,他们在江湖中虽为龙套,但不可或缺。另一部分人,华山论剑,刀光剑影,矗立江湖之巅,他们是系统分析师、架构师等,他们内功深厚,视野开阔,一招一式,举手投足间蕴藏着对可维护性、可扩展性等的深思熟虑。当然,更多的一部分人,他们不甘于现状,天资聪慧,正由“码农”向高手的身份努力中。
陈宇明
2020/12/15
4390
武林秘籍之设计模式迷你手册
一起学习设计模式--设计模式
武侠小说中武术分招式和内功,比如独孤九剑就是招式,九阳神功就是内功。招式可能照猫画虎很快就能学会,但是内功心法则需要日积月累,一点一点的修炼。
独立观察员
2022/12/06
1960
一起学习设计模式--设计模式
业余草谈设计模式
设计模式之间并不是完全独立的,而是互相之间,会有一些相同的影子,下面我们来一起总结下这24种设计模式。
业余草
2019/01/21
4110
Java二十三种设计模式-策略模式(13/23)
策略模式(Strategy Pattern)是一种行为型设计模式,它定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。
正在走向自律
2024/12/18
2710
Java二十三种设计模式-策略模式(13/23)
C#设计模式开启闯关之路
  这是一条望不到尽头的编程之路,自踏入编程之路开始。就面临着各式各样的挑战,而我们也需要不断的挑战自己、不断学习充实自己、打好坚实的基础。以使我们可以走的更远。刚踏入编程的时候。根据需求编程,需求改代码改。需求加代码加。重复来重复去。一切都觉得还不错。功能实现了,项目跑起来了。但是真的就不错了吗?当然不是,也许过了几年你再回头看这些代码或许你也不知道写的啥了。这样写出来的代码你自己都可能看不到,更何况其他人呢?对吧。偶尔一次闯入一处秘境。发现了一本名叫”设计模式”的”武功”秘籍。也是编程之路之上不可获取的能力之一。它解决了代码重复使用,代码冗余的问题。使代码结构简洁易懂。使代码的思路清晰明了。代码优美,结构完善合理。我们一起看看这个至高的秘籍。
小世界的野孩子
2019/09/11
5780
【JAVA今法修真】 第九章 兼容并包 适配模式
万维仙网正如它的名字一样,方法在一个空间内叠加了无数维度,利用超链接技术,可以自由的在各个维度内穿梭。
南橘
2022/03/07
2370
【JAVA今法修真】 第九章  兼容并包 适配模式
设计模式专题(二十四) ——访问者模式
设计模式专题(二十四)——访问者模式 (原创内容,转载请注明来源,谢谢) 一、概述 访问者模式(visitor)表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素的类的前提下,定义作用于这些元素的新操作。 访问者模式适用于数据结构相对稳定的系统,并把数据结构和作用于结构上的操作之间的耦合解开,使操作可以自由地演化。 访问者模式的目的是为了把处理从数据结构分离出来,如果有比较稳定的数据结构,易于变化的算法,则访问者模式比较合适。 访问者模式的优点在于增加新的操作很容易,意味着增加一个新
用户1327360
2018/03/07
8300
设计模式专题(二十四) ——访问者模式
设计模式专题(二十三) ——解释器模式
设计模式专题(二十三)——解释器模式 (原创内容,转载请注明来源,谢谢) 一、概述 解释器模式(interpreter)是给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。 如果某一特定类型发生的频率足够高,那么就可以将问题的各个实例表述为一个简单语言中的句子,并构建解释器,通过解释句子,解释器来解决问题。 例如字符串匹配,大多数语言用到的正则表达式,就可以理解成一种解释器模式,字符串是待匹配字符的集合,而表达式是一种匹配模式。 当有一个语言需要解释器执
用户1327360
2018/03/07
7060
设计模式专题(二十三) ——解释器模式
十五.各设计模式总结与对比
3、 不要为了用设计模式去生搬硬套,而是在业务上到遇到问题时,很自然地想到设计模式作为一种解 决方案。
编程之心
2020/08/12
9030
十五.各设计模式总结与对比
设计模式(十四)中介者模式
前言 写了很多篇设计模式的文章,才发现没有讲关于设计模式的分类,那么这一篇就补上这一内容,顺便带来中介者模式的讲解,并与此前讲过的代理模式和外观模式做对比。 1.设计模式的分类 GoF提出的设计模式总共有23种,根据目的准则分类分为三大类: 创建型模式,共五种:单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备
用户1269200
2018/02/01
6300
设计模式(十四)中介者模式
Java二十三种设计模式-代理模式(8/23)
代理模式(Proxy Pattern)是一种结构型设计模式,它为其他对象提供一个代替或占位符,以控制对它的访问。
正在走向自律
2024/12/18
2050
Java二十三种设计模式-代理模式(8/23)
再谈23种设计模式(3):行为型模式(学习笔记)
无论造型如何变化,不变的有两种东西:“奶油”和“面包”。其余的材料随意搭配,就凑成了各式各样的蛋糕。
周陆军博客
2024/06/06
3420
Java二十三种设计模式-装饰器模式(7/23)
装饰器模式(Decorator Pattern)是一种结构型设计模式,用于在不修改对象自身的基础上,通过添加额外的职责来扩展对象的功能。
正在走向自律
2024/12/18
1720
Java二十三种设计模式-装饰器模式(7/23)
Java二十三种设计模式-备忘录模式(19/23)
本文深入探讨了备忘录模式,从定义、组成、实现到使用场景、优缺点、与其他模式的比较,以及最佳实践和替代方案,全面解析了如何在软件开发中有效地保存和恢复对象状态,以支持复杂的撤销操作和历史状态管理。
正在走向自律
2024/12/18
1360
Java二十三种设计模式-备忘录模式(19/23)
设计模式专题(二十一) ——中介者模式
设计模式专题(二十一)——中介者模式 (原创内容,转载请注明来源,谢谢) 一、概述 中介者模式(Mediator)是用一个中介对象,来封装一系列对象的交互。中介者使各对象不需要显式地相互引用,从而松耦合,可以独立改变它们之间的交互。 中介者模式使得多个类之间互相通信,可以通过中介者快速实现。但是,也需要注意的是,如果系统频繁出现多对多通信的情况,首先需要排查类的设计,有可能是设计问题导致的。 1、优点 中介者模式减少各个类之间的耦合,使得可以读了改变和复用各个类。另外,由于把对象之间的协作进行抽象,将
用户1327360
2018/03/07
6330
设计模式专题(二十一) ——中介者模式
设计模式概念总结
   定义一个用于创建对象的接口,让子类决定实例化哪个类,工厂方法使一个类的实例化延迟其子类
莫问今朝
2019/02/25
5570
Java二十三种设计模式-访问者模式(21/23)
本文深入探讨了访问者模式,一种允许向对象结构添加新操作而不修改其本身的设计模式,涵盖了其定义、组成部分、实现方式、使用场景、优缺点、与其他模式的比较,以及最佳实践和替代方案。
正在走向自律
2024/12/18
7690
Java二十三种设计模式-访问者模式(21/23)
Java二十三种设计模式-迭代子模式(16/23)
迭代器模式(Iterator Pattern)是一种行为型设计模式,它允许顺序访问一个集合对象中的各个元素,而不需要暴露集合的底层表示。
正在走向自律
2024/12/18
1510
Java二十三种设计模式-迭代子模式(16/23)
相关推荐
设计模式 ☞ 概述
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档