State的定义:不同的状态,不同的行为;或者说,每个状态有着相应的行为。何时使用状态模式State模式在实际使用中比较多,适合"状态的切换"。因为我们经常会使用If elseif else 进行状态切换, 如果针对状态的这样判断切换反复出现,我们就要联想到是否可以采取State模式了。不只是根据状...
分类:
编程语言 时间:
2015-03-04 08:30:02
阅读次数:
159
在阎宏博士的《JAVA与模式》一书中开头是这样描述状态(State)模式的:
状态模式,又称状态对象模式(Pattern of Objects for States),状态模式是对象的行为模式。
状态模式允许一个对象在其内部状态改变的时候改变其行为。这个对象看上去就像是改变了它的类一样。
状态模式的结构
用一句话来表述,状态模式把所研究的对象的行为包装在不同的状态对象里,每...
分类:
移动开发 时间:
2014-11-19 20:39:43
阅读次数:
180
state模式应用场景条件判断很多的情况比如有很多if else语句;switch case语句等等。如果以后业务越来越复杂,条件判断有100多个,每种条件的处理逻辑很复杂,不止一个业务逻辑会重复用到之前条件的处理逻辑。
分类:
其他好文 时间:
2014-11-01 16:08:26
阅读次数:
152
状态模式和策略模式容易混淆。
状态模式从结构图、示例性演示代码来看,都和策略模式一致,他们最大的区别,是内涵不同。
策略模式,是对一种业务场景,多种算法的实现,比如促销 --》多买多折促销、满减促销;状态模式,是对一种业务场景,多种状态的封装,比如在对于TCP协议,对于每种状态都封装一个具体状态类。...
分类:
其他好文 时间:
2014-10-15 20:05:01
阅读次数:
343
/**
* @author stone
*/
public class WindowState {
private String stateValue;
public WindowState(String stateValue) {
this.stateValue = stateValue;
}
public String getStateValue() {
retur...
分类:
编程语言 时间:
2014-10-14 00:46:17
阅读次数:
217
package org.rui.pattern;import junit.framework.*;/** * 为了使同一个方法调用能够产生不同的行为,State 模式在代理(surrogate)的 * 生命周期内切换它所相应的实现(implementation)。当你发现,在决定怎样实现任 对象去耦...
分类:
编程语言 时间:
2014-09-09 17:51:59
阅读次数:
167
1、状态模式:改变对象的行为一个用来改变类的(状态的)对象。2:问题:当你自己实现 State 模式的时候就会碰到很多细节的问题,你必须根据自己的需要选择合适的实现方法,比如用到的状态(State)是否要暴露给调用的客户,以及如何使状态发生变化用于改变状态的机制可能很简单也可能很复杂-比如状态机(S...
分类:
其他好文 时间:
2014-08-13 01:00:04
阅读次数:
259
supercell最近处的卡通农场也叫HayDay异常火爆,这里我也来写一下游戏的主要框架。此游戏的核心较为简单,就是一个状态机在不停的运作,这里考虑使用状态模式来实现,为什么要选择状态机呢,因为游戏中的绝大多数的角色都是状态在改变行为,所以使用状态机是在合适不过了。首先分析一下游戏中的元素,要做到...
分类:
其他好文 时间:
2014-07-29 17:32:22
阅读次数:
275
状态(State)模式: 当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。状态模式的结构:上下文环境(Context): 它定义了客户程序需要的接口并维护一个具体状态角色的实例,将与状态相关的操作委托给当前的Concrete State对象来处理。抽象状态(State):.....
分类:
其他好文 时间:
2014-07-28 15:05:33
阅读次数:
250