设为首页
收藏本站
切换到宽版
登录
立即注册
找回密码
搜索
搜索
本版
帖子
用户
快捷导航
论坛
BBS
VIP用户组
官网群
无名商城论坛
»
论坛
›
资源分享区
›
学习资源专区
›
【LSP】状态模式(c++实现)
返回列表
发帖
查看:
211
|
回复:
0
[其他技术]
【LSP】状态模式(c++实现)
[复制链接]
无名
无名
当前离线
积分
32464
1万
主题
1万
帖子
3万
积分
管理员
积分
32464
发消息
发表于 2022-5-8 17:02:06
|
显示全部楼层
|
阅读模式
模式定义
状态模式(state),当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。
模式动机
状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。
当一个对象的行为取决于它的状态,并且它必须在运行时根据状态改变它的行为时,就可以考虑使用状态模式了。
UML类图
源码实现
state.h
优点
模式的优点
将与特定状态相关的行为局部化,并且将不同状态的行为分割开来。
将特定的状态相关的行为都放入一个对象中,由于所有与状态相关的代码都存在于某个ConcreteState中,所以通过定义新的子类可以很容易的增加新的状态和转换。
消除庞大的条件分支语句。
状态模式通过把各种状态转移逻辑分布到state的子类之间,来减少相互之间的依赖。
缺点
模式的缺点
每个子状态跳转到另外一个子状态是固定的,不能够灵活设置下一个状态,也就是说状态之间装换最好是一对一的,否则就又会出现一个庞大的分支语句。从这点上来看还有点像职责链模式。
状态
,
模式
,
一个
,
对象
,
行为
相关帖子
•
【Max】团队~利用AIDE做个小应用=总结+AIDE教程结束
•
【LUR】入侵国外摄像头教程
•
【LUR】添加网站本地背景音乐各种播放模式
•
【LUR】非常实用!使用BootStrap实现布局~
•
【解忧】最全的JAVA知识汇总(附讲解和思维导图)
•
【DMT】教你们修改器如何播放音乐教程
•
SMTP邮件群发软件,支持163邮箱,谷歌邮箱,126邮箱等等...,QQ邮箱,
回复
使用道具
举报
返回列表
发帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
快速回复
返回顶部
返回列表