一、状态模式的特点:
>改变对象内部的状态来帮助对象控制自己的行为
>每个状态的行为都封装在各自的类中
>动作发生时委托给当前状态
>每个状态”对修改关闭”; context(对象)”对扩展开放”,可以加入新的状态类
二、何时用状态模式:
1. 逻辑里有各种状态。一般是超过3个以上状态
2. 状态是关于某个对象或上下文(context)的
3. 好几个地方需要判断if条件
...
分类:
其他好文 时间:
2015-06-24 14:44:45
阅读次数:
110
(20)状态模式
定义:当-个对象内在状态改变时允许其改变行为,这个对象看起来像改变了其类。)
类型:行为型模式
类图:
状态模式结构:
State:抽象状态角色,接口或抽象类,负责对象状态定义,并且封装环境角色以实现状态切换。
ConcreteState:具体状态角色,每一个具体状态必须完成两个职责:本状态的行为管理以及趋向状态处理,通俗地说,就是本状态下要做的事情,以及本状态如...
分类:
其他好文 时间:
2015-06-20 09:10:25
阅读次数:
86
passport.baidu.com/?business&un=%E5%8D%97%E5%AE%81%5F%E5%B0%8F%E5%A7%90%5F%E5%8F%AB#0passport.baidu.com/?business&un=%E5%8D%97%E5%AE%81%5F%E7%BE%8E%E5...
分类:
编程语言 时间:
2015-06-20 06:47:08
阅读次数:
115
1、定义:
当一个对象内在状态转变时,允许改变其行为,这个对象看起来改变了其类;
2、优点:
将与特定状态相关的行为局部化,并且将不同状态的行为分割开来;
3、目的:
消除庞大的条件分支语句;
4、使用:
当一个对象的行为取决于它的状态,并且它在运行时刻必须根据状态改变它的行为时,就可以考虑状态模式;
5、描述:
将特定状态的行为都...
分类:
移动开发 时间:
2015-06-18 17:18:33
阅读次数:
123
状态模式:当一个对象的内在状态发生改变时允许改变其内在行为,这个对象看起来像是改变了其类。
状态模式主要是解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。
首先定义一个IState接口public interface IState { public void handle(Context conte...
分类:
其他好文 时间:
2015-06-16 11:06:21
阅读次数:
98
定义:为其他对象提供一种代理以控制对这个对象的访问。使用代理模式创建代理对象,让代理对象控制目标对象的访问(目标对象可以是远程的对象、创建开销大的对象或需要安全控制的对象),并且可以在不改变目标对象的情况下添加一些额外的功能。
类型:结构类模式
类图:
代理模式也叫做委托模式,它是一项基本设计技巧,许多其他的模式,如状态模式、策略模式、访问者模式本质上是在更特殊的场合采用了委托模式...
分类:
其他好文 时间:
2015-06-16 09:20:26
阅读次数:
108
模式动机(State Pattern):软件系统中,每一个模块在不同的环境下可能发挥着不同的作用,表现为同一对象可能有多种不同的状态,而每种状态下可能有不同的行为。在UML图中,可以用状态图来表示。在程序设计中,我们引入一个抽象状态接口,其中封装了与当前环境状态相关的行为,然后定义具体的状态实现类,...
分类:
其他好文 时间:
2015-06-15 16:16:34
阅读次数:
144
背景 ? ? 就算你重复做一件事情几十年,这件事情也未必每次都和上一次一样那么干净的结束。因为,状态会影响的你,不同的状态,所做出的事情自然也不一样。库里状态手感火热的时候,可以展示变态准;状态低迷时...
分类:
其他好文 时间:
2015-06-14 12:36:35
阅读次数:
92
http://www.cnblogs.com/soojoe/archive/2012/04/12/2532304.html委托模式是软件设计模式中的一项基本技巧。在委托模式中,有两个对象参与处理同一个请求,接受请求的对象将请求委托给另一个对象来处理。委托模式是一项基本技巧,许多其他的模式,如状态模式...
分类:
编程语言 时间:
2015-06-12 09:50:33
阅读次数:
143