开篇:行为型模式解决的是"协作"问题
前两篇我们学了怎样创建对象(创建型),怎样组合对象(结构型)。这一篇要解决的终极问题是:多个对象之间怎样高效地分工协作?
一个软件系统里,对象之间的交互往往比对象本身更复杂。行为型模式关注的就是对象之间的职责划分和通信方式——谁干什么活,谁通知谁,按什么顺序来。
生活中的类比:
- 一家餐厅——服务员记下你的菜单(命令模式),传给厨房,厨房按照固定流程(模板方法)做菜,做好后通知服务员上菜(观察者模式)
- 一场足球赛——教练赛前制定了进攻策略和防守策略(策略模式),比赛中根据比分切换策略,换人请求沿着"球员→队长→教练→裁判"的链条传递(责任链模式)
- 一个电商订单——从"待付款"到"已付款"到"已发货"到"已签收",每个状态下能执行的操作完全不一样(状态模式)
大约 19 分钟