社区
Java
帖子详情
我想知道状态和策略两种模式的区别
Abib
2003-09-14 06:05:53
大虾烦请指点迷津,多谢
...全文
73
3
打赏
收藏
我想知道状态和策略两种模式的区别
大虾烦请指点迷津,多谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
eagle19790214
2003-09-15
打赏
举报
回复
同意topbit
jeffyan77
2003-09-15
打赏
举报
回复
状态模式经常与策略模式相混淆。有的时候很难区分应当使用状态模式还是应当使用策略模式。
这个时候,一个简单的方法便是考察环境角色是否有明显的状态和状态的过渡。如果环境角色只有一个状态,那么就应当使用策略模式。策略模式的特点是一旦环境角色选择了一个具体策略类,那么在整个环境类的生命周期里它都不会改变这个具体策略类。而状态模式泽适用于另一种情况,即环境角色有明显的状态转移。在环境类的生命周期里面,会有几个不同的状态对象被使用。
另一个微妙的区别在于,策略模式的环境类自己选择一个具体策略类;而状态模式的环境类是被外在原因放进一个具体状态中。
策略模式所选的策略往往并不明显地告诉客户端它所选择的具体策略;而状态模式则相反,在状态模式里面,环境角色所处的状态是明显告诉给客户端的。
topbit
2003-09-15
打赏
举报
回复
解决的问题不同:
状态模式,解决内在状态的改变。
策略模式,解决内部算法的改变。
解决的方法不同:
状态模式,通常是自我控制状态的改变。
策略模式,由外部指定使用什么样的策略。
图解Java设计
模式
(一)
1) 优秀的程序应该是这样的:阅读时,感觉很优雅;新增功能时,感觉很轻松;运行时,感觉很快速,这就需要设计
模式
支撑。2) 设计
模式
包含了大量的编程思
想
,讲授和真正掌握并不容易,网上的设计
模式
课程不少,大多讲解的比较晦涩,没有真实的应用场景和框架源码支撑,学习后,只知其形,不知其神。就会造成这样结果:
知道
各种设计
模式
,但是不
知道
怎么使用到真实项目。本课程针对上述问题,有针对性的进行了升级 (1) 授课方式采用 图解+框架源码分析的方式,让课程生动有趣好理解 (2) 系统全面的讲解了设计
模式
,包括 设计
模式
七大原则、UML类图-类的六大关系、23种设计
模式
及其分类,比如 单例
模式
的8种实现方式、工厂
模式
的3种实现方式、适配器
模式
的3种实现、代理
模式
的3种方式、深拷贝等3) 如果你
想
写出规范、漂亮的程序,就花时间来学习下设计
模式
吧课程内容和目标本课程是使用Java来讲解设计
模式
,考虑到设计
模式
比较抽象,授课采用 图解+框架源码分析的方式1) 内容包括: 设计
模式
七大原则(单一职责、接口隔离、依赖倒转、里氏替换、开闭原则、迪米特法则、合成复用)、UML类图(类的依赖、泛化和实现、类的关联、聚合和组合) 23种设计
模式
包括:创建型
模式
:单例
模式
(8种实现)、抽象工厂
模式
、原型
模式
、建造者
模式
、工厂
模式
。结构型
模式
:适配器
模式
(3种实现)、桥接
模式
、装饰
模式
、组合
模式
、外观
模式
、享元
模式
、代理
模式
(3种实现)。行为型
模式
:模版方法
模式
、命令
模式
、访问者
模式
、迭代器
模式
、观察者
模式
、中介者
模式
、备忘录
模式
、解释器
模式
(Interpreter
模式
)、
状态
模式
、
策略
模式
、职责链
模式
(责任链
模式
)2) 学习目标:通过学习,学员能掌握主流设计
模式
,规范编程风格,提高优化程序结构和效率的能力。
23种设计
模式
之
状态
模式
和
策略
模式
的
区别
在行为类设计
模式
中,
状态
模式
和
策略
模式
是亲兄弟,两者非常相似,我们先看看两者的通用类图,把两者放在一起比较一下
状态
模式
与
策略
模式
很相似,确切的说
状态
模式
包含
策略
模式
。
策略
模式
封装的是行为,而
状态
模式
封装的是变化。尽管这么说,但事实上
策略
模式
与
状态
模式
在很多情况下都是可以互相转化的,具体应该使用何种
模式
,就要从上面的两个方面尽心分析,能够看得出明显
状态
变化的,当热要用
状态
模式
;...
设计
模式
之
策略
模式
与
状态
模式
的
区别
转
策略
模式
与
状态
模式
的比较
状态
模式
(state pattern)和
策略
模式
(strategy pattern)的实现方法非常类似,都是利用多态把一些操作分配到一组相关的简单的类中,因此很多人认为这
两种
模式
实际上是相同的。然而在现实世界中,
策略
(如促销一种商品的
策略
)和
状态
(如同一个按钮来控制一个电梯的
状态
,又如手机界面中一个按钮来控制手机)是
两种
完全不同的思
想
。当我们对
状态
和
策略
进行建模时,这种差异
桥接
模式
和
策略
模式
的
区别
转 桥接
模式
和
策略
模式
的
区别
2012...
设计
模式
之桥梁
模式
和
策略
模式
的
区别
桥接(Bridge)
模式
是结构型
模式
的一种,而
策略
(strategy)
模式
则属于行为
模式
。以下是它们的UML结构图。 桥梁
模式
:
策略
模式
: 在桥接
模式
中,Abstraction通过聚合的方式引用Implementor。 举一个例子:
策略
模式
:我要画圆,要实心圆,我可以用solidPen来配置,画虚线圆可以用dashedPen来配置。这是strategy
模式
。 桥接
模式
:同样是画圆,
Java
50,523
社区成员
85,601
社区内容
发帖
与我相关
我的任务
Java
Java相关技术讨论
复制链接
扫一扫
分享
社区描述
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章