一、概述
定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
二、适用性
1.一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为。
2.一个操作中含有庞大的多分支的条件语句,且这些分支依赖于该对象的状态。 这个状态通常用一个或多个枚举常量表示。 通常,有多个操作包含这一相同的条件结构。 State模式将每一个条...
分类:
编程语言 时间:
2015-05-09 15:05:01
阅读次数:
193
状态模式就是将对象在每一个状态下的行为和状态转移语句封装在一个个状态类中,通过这些状态类来分散冗长的条件转移语句。 状态模式(State Pattern):允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。其别名为状态对象(Objects for States),状态模式是一....
分类:
其他好文 时间:
2015-05-05 19:18:13
阅读次数:
113
状态模式用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题。当系统中某个对象存在多个状态,这些状态之间可以进行转换,而且对象在不同状态下行为不相同时可以使用状态模式。状态模式将一个对象的状态从该对象中分离出来,封装到专门的状态类中,使得对象状态可以灵活变化,对于客户端而言,无须关心对象状态的转换以及对象所处的当前状态,无论对于何种状态的对象,客户端都可以一致处理。...
分类:
其他好文 时间:
2015-05-05 16:33:11
阅读次数:
98
1.如何从状态图得到真正的代码:(1)找出所有状态:没有25分钱,有25分钱,糖果售罄,售出糖果。(2)创建一个实例变量来持有目前状态,并且定义每个状态的值:1 final static int SOLD_OUT = 0;2 final static int NO_QUARTER = 1;3 fin...
分类:
其他好文 时间:
2015-05-02 06:17:24
阅读次数:
208
说到策略模式,我们最先想到的就是商店的收银方式:不满100,正常收费;超过100不满300,超过的部分打八折;超过300,全价九折!
解决这个问题最最普通的方法就是大量的If…Else…,而它带来的就是无情的难以维护,每次条件变更都会修改原代码,严重违反了开闭原则。
显而易见,策略模式的解决方式就是封装了一系列平行且复杂的实现方式,在不同的场景下,我们选择一个最适合的方案。...
分类:
其他好文 时间:
2015-04-30 18:21:28
阅读次数:
143
状态模式定义:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。实用性:1、 一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为。2、 一个操作中含有庞大的多分支条件语句,且这些分支依赖于该对象的状态。优点:1、 将与特定状态相关的行为局部化,并且将不同状态...
分类:
编程语言 时间:
2015-04-30 15:32:01
阅读次数:
136
设计模式的第三大类型——行为模式,以下是对观察者模式、模板方法模式、命令模式、状态模式、职责链模式这五个的读后总结,欢迎交流! 观察者模式(Observer):定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,全部依赖于它的对象都得到通知并被自己主动更新。[大话设计模式] 特点:类...
分类:
其他好文 时间:
2015-04-30 14:10:31
阅读次数:
107
//---------------------------15/04/28----------------------------
//State 状态模式----对象行为型模式
/*
1:意图:
允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。
2:别名:
状态对...
分类:
其他好文 时间:
2015-04-28 16:17:16
阅读次数:
93
在GOF的《设计模式:可复用面向对象软件的基础》一书中对状态模式是这样说的:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。状态模式的重点在于状态转换,很多时候,对于一个对象的状态,我们都是让这个对象包含一个状态的属性,这个状态属性记录着对象的具体状态,根据状态的不同使用分支...
分类:
其他好文 时间:
2015-04-24 18:14:09
阅读次数:
141
场景: -- 酒店系统中,房间的状态变化: 空闲 -- >已预定 -- > 已入住核心: -- 用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题结构: -- Context环境类 环境类中维护一个State对象,他是定义了当前的状态 -- State抽象状态类 -- 每一...
分类:
其他好文 时间:
2015-04-21 20:20:53
阅读次数:
122