前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >设计模式之状态模式

设计模式之状态模式

作者头像
九转成圣
发布2024-04-16 08:06:38
670
发布2024-04-16 08:06:38
举报
文章被收录于专栏:csdncsdn

状态模式(State)

定义

允许一个对象在其内部状态改变时改变它的行为(改变了内部持有的对象)。

使用场景

主要角色

  1. Context 上下文
  2. State 状态抽象类或接口
  3. ConcreteState 具体状态

类图

image-20240109103020031
image-20240109103020031

示例代码

状态模式和策略模式的对比

  1. 焦点不同:
    • 状态模式关注对象在不同状态下的行为变化,而策略模式关注定义一系列算法,使其可以相互替换。
  2. 用途不同:
    • 状态模式适用于对象有多个状态,且在状态切换时有不同的行为。例如,自动售货机在有货和无货两个状态下的行为不同。
    • 策略模式适用于客户端需要选择不同算法,或者同一算法有多种实现方式的情况。例如,排序算法可以有不同的实现,客户端可以选择使用不同的排序策略。
  3. 关系:
    • 状态模式和策略模式都涉及到对象的行为可以在运行时变化。实际上,状态模式可以被看作是一种特殊形式的策略模式,其中上下文的行为受内部状态的影响。
本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-04-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

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

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 状态模式(State)
  • 定义
  • 使用场景
  • 主要角色
  • 类图
  • 示例代码
  • 状态模式和策略模式的对比
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com