《武术与设计模式》行为型

本文探讨了编程中的几种行为模式,如通过旗语通信、状态切换、中介者角色、责任链、备忘录模式、解释器模式、访问者模式、模板方法、迭代器和策略模式,以武林故事为比喻,阐述了这些模式在程序设计中的应用和意义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

“行为型”原意:对象之间如何通信

订阅者

  • 程序: 事物之前的通信,通过该机制,一个事物说,另外的事物能知道
  • 武林:黄忠与法正在定军山斩杀夏侯渊时,法正举白旗,黄忠收到消息表示不进攻。法正举红旗,黄忠收到进攻指示于是下山斩杀了夏侯渊。(此处通过举旗来进行通信)

状态

  • 程序:事物有多种状态,经常在状态之前相互切换
  • 武林:两个人搏斗,一个人进攻,过了一会累了,他进入防守。(此处进攻和防守就是两种状态)

中介

  • 程序:不相互联系,统一跟一个人(中介)联系
  • 武林:全真教弟子在演练天罡北斗阵时,马钰说一声“繁星点点”, 众人听到消息,当即出相应动作。(此处马钰即是中介者)

责任链

  • 程序:一环接一环,一个人做完事情后还得交接另外给另外一个人
  • 武林:戚继光发明的对倭寇的鸳鸯阵,先是持狼筅或盾牌的阻击倭寇,然后持长毛的从后面刺杀。此次即是两个类型的连续,先狙击再刺杀。
    在这里插入图片描述
    • 示例二 ,直摆勾连招中,每招做完都交给下一招接着做。

备忘录

  • 程序:软件测试时,需要保存初始数据以进行多种方案的测试
  • 武林:散打时,打完几招即恢复“格斗式”初始状态,以继续进行战斗。

解释器

  • 程序:制定结束和非结束符,用来分析整篇数据
  • 武林:在某武功绝世秘籍中,一共有18招,只有17招,但最后一招未写。最后某个聪明人领悟出,最后一招即是前面17招的总和,将前面17招再打一次。(此处第18招是非结束符)
    • 示例二 《新独臂刀》中,雷力独臂用了三把刀才杀掉坏人(先是将另外两把刀挑向天空,待刀落下即可使用),此处把刀挑向天空的做法是非结束符(又新生了2把刀可用)

访问者

  • 程序: 不同的人对不同的事物有不同的处理方法
  • 武林: 某武术门派派了2人参加某个武术比赛,此2人报了不同的项目,比如A报名了少林镇山棍和大力金刚拳,B报名了少林紫薇棒和少林五形八法拳,那么教练需要针对每个人的每个动作去指导。

模板

  • 程序:将事情之间相同的部分抽取出来
  • 武林:在学习少林镇山棍和少林紫薇棒两套动作时,就会发现两个套路有相似的动作,即可提取出来(剩下就就是练习不同的部分)

迭代器

  • 程序:展示所有数据
  • 武林:通过视频或者书来记录某个套路的所有动作(此次视频和书都可展示所有数据。)

策略

  • 程序:采取不同的策略去解决好几个问题
  • 武林:邵氏电影《残缺》中,有3人分别听力、视力、腿部受伤,高人为了恢复此3人功夫,分别教了每个人不同的功夫来提供其战斗能力,训练A眼力弥补听力(手上带上反光镜片可迅速看到后方),训练B听力来弥补视力,加上C铁脚来弥补腿伤。
    在这里插入图片描述

命令

  • 程序:将“行为请求者”与“行为实现者”抽象解耦,两者之间没有联系
  • 武林://todo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

thefist11

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值