状态模式和策略模式的本质区别在哪里? 看了<<Java与模式>>里讲的两者的区别,还是不太明白,望达人指教。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 The way to teach clients to use composition and delegation is different:Strategy gives its instantiate object a strategy that implements some behavior.State changes state according to some well [defined] state transactions. (转自《JAVA设计模式》)状态模式经常与策略模式相混淆。有时候很难区分应当使用状态模式还是应当使用策略模式。 这个时候,一个简单的方法便是考察环境角色是否有明显的状态和状态的过渡,如果环境角色只有一个状态,那么就应当使用策略模式。策略模式的特点是:一旦环境角色选择了一个具体策略类,那么整个环境类的生命周期里它都不会改变这个具体策略类。而状态模式则适用于另一种情况,即环境角色有明显的状态转移。在环境类的生命周期里,会有几个不同的状态对象被使用。 另一个微妙的区别在于,策略模式的环境类自己选择一个具体策略类;而状态模式的环境类被外在的原因放进一个具体状态类中。 策略模式所选的策略往往并不明显的告诉客户端它所选择的具体策略;而状态模式则相反,在状态模式里,环境角色所出的状态是明显告诉客户端的。 请教现在正在公司做Java项目的前辈们,迭代器中的三个方法的用法。 FileInputStream 问题 lucene+heritrix day2 我在网上找到一个这样的加密算法,为什么在有机器上运行,(红色部分)获取本机mac地址出现错误,显示没有该方法!哪位大哥能帮我解决一下!谢谢 List加List的问题? 请问如何实现窗口中所绘图形的选定、拖动等功能? 有关于JTree的问题 大家来看看这段小代码是什么结果? java 基础:什么是Listener? java 入门 意外类型 大家帮看看 为什么我的这个程序不能运行啊?谁帮我看看啊.
Strategy gives its instantiate object a strategy that implements some behavior.
State changes state according to some well [defined] state transactions.
状态模式经常与策略模式相混淆。有时候很难区分应当使用状态模式还是应当使用策略模式。
这个时候,一个简单的方法便是考察环境角色是否有明显的状态和状态的过渡,如果环境角色只有一个状态,那么就应当使用策略模式。策略模式的特点是:一旦环境角色选择了一个具体策略类,那么整个环境类的生命周期里它都不会改变这个具体策略类。而状态模式则适用于另一种情况,即环境角色有明显的状态转移。在环境类的生命周期里,会有几个不同的状态对象被使用。
另一个微妙的区别在于,策略模式的环境类自己选择一个具体策略类;而状态模式的环境类被外在的原因放进一个具体状态类中。
策略模式所选的策略往往并不明显的告诉客户端它所选择的具体策略;而状态模式则相反,在状态模式里,环境角色所出的状态是明显告诉客户端的。