最新文章列表

java 状态模式

public class Context {    private TestState testState;    public void setState(TestState state){        this.testState = state;    }    public void changeColor() {        testState.handle();    }}   ...
xiaoshiyier 评论(0) 有573人浏览 2019-04-27 00:31

状态模式--封装状态的变化

关于状态的案例   在日常开发中经常会遇到 一个对象有多种状态的情形,并且在不同的状态下需要执行的动作会不同。很多朋友一般会采用if elseif else语句进行判断不同的状态,对匹配到的不同状态进行不同的业务逻辑处理。这样所有的业务逻辑代码都被融合在一起,不符合“开闭原则”验重影响代码的可读性,以及将来代码的维护(比如新增状态)。   下面来看一个笔者遇到的真实案例,在设计一个“页面浏 ...
moon_walker 评论(0) 有1368人浏览 2017-11-15 16:24

HeadFirst设计模式_读书笔记_010_状态模式

状态模式:允许对象在内部状态改变的时候改变它的行为。   例如: 我们在12306上买票,行为是卖票,状态有两个,有余票则出票成功,余票不足就出票失败。 public class Station { public State state; private int tickets = 0; public Station(int tickets) { this.ti ...
afra.liu 评论(0) 有450人浏览 2017-03-30 17:17

状态模式——文档编辑模式切换

一模式定义 状态模式:当一个对象的内在状态改变时允许改变其行为,这个对象看起来就像是改变了其类。   二模式举例 1模式分析 我们借用文档编辑模式切换这一案例来说明这一模式。   2状态模式静态类图   3代码示例 3.1创建状态接口一IState package com.demo.state; import com.demo.context.Context; / ...
cakin24 评论(0) 有762人浏览 2016-10-22 10:17

设计模式总结之状态模式(State)

状态模式(State)就是根据对象的状态不同,将有不同的行为。当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。 状态模式使代码种复杂而庸长的逻辑判断语句问题得到了解决,而且具体状态角色将具体的状态和它对应的行为封装起来了,这使得增加一种新的状态变得十分简单。但是每一个状态对应一个具体的状态类,是结构分散,逻辑不是很清楚,阅读代码工作量会大一些。   // C ...
408599764 评论(0) 有588人浏览 2016-04-23 22:15

从魔兽世界看状态模式

     有学过物理课的同学都知道物理课本里面有固态,液态,气态,用来描述物体的形态。但在面向对象的软件世界中,状态可以用来描述各种各样的对象。比如你想在淘宝买一个商品,此时商品肯定是在售状态,如果这个商品已经售完;如果这个商品已经被买家购买一空,那么商品变成了售空状态;如果中途这个商品被发现质量有问题,于是变成了下架状态。当然真正的商品状态肯定不止这些,这里只是举了些例。      网络上有 ...
denverj 评论(0) 有1804人浏览 2015-10-30 09:40

设计模式 之 状态模式

    下载 23种设计模式源码 :http://download.csdn.net/download/knight_black_bob/8936043   //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ...
knight_black_bob 评论(0) 有1182人浏览 2015-07-24 16:15

状态模式

自动售饮料机 状态:售空、有钱、没钱、出售中。 通过创建一个实例变量来持有状态值,并在方法内书写条件代码来处理不同状态。 我们需要处理所有发生的动作(状态的转换),动作包括:投钱、退钱、按出货按钮、出货。   package com.ez.other; /** * 通过一个实例变量来持有状态值,在方法内书写条件代码来处理不同状态。 * @author 窗外赏雪(EZ编程网 ...
lovefeixian 评论(0) 有327人浏览 2014-10-29 19:03

combiner中使用状态模式

  mapreduce中的combine过程 hadoop的map过程执行完成后,每一个map都可能会产生大量的本地输出,Combiner的作用就是对map端的输出先做一次合并,减少在map和reduce节点之间的数据传输量,提高网络I/O性能。   Combiner最基本的就是实现本地key的聚合,对map输出的key 排序,value进行迭代。Combiner在本质上就是一个本地 ...
brandNewUser 评论(0) 有1151人浏览 2014-09-02 13:38

16.设计模式之状态模式

1. 定义:     状态模式,又称状态对象模式(Pattern of Objects for States),状态模式是对象的行为模式。    状态模式允许一个对象在其内部状态改变的时候改变其行为。这个对象看上去就像是改变了它的类一样 2.例子:    例子参考HeadFirst  通过状态模式实现糖果机,糖果机分为四个状态:投币,未投币,售完,销售中    然后通过当前状态决定当前的操 ...
wangkechao.dream 评论(0) 有832人浏览 2014-07-31 16:13

变化多端的状态模式(State Pattern)

现在写字楼越建越高,码农上个班不但要挤个地铁,还要挤个电梯。电梯的运行简单有这么几个状态:运行、停止、关闭、打开,电梯想要正常的运行 ...
home198979 评论(4) 有4087人浏览 2014-05-08 10:20

传統状态模式编程模型 VS 生命周期框架编程模型

       传统编程模型可以采用最经典的状态模式构建状态机,已达到刻画对象生命周期的目的。在这种编程模型中,为了表达一个状态转移需要应用程序员编写下面类似的代码。 例如在Android开放源代码中的StateMachine.java Java代码  private class HaltingState extends State { 728 @Override 729 ...
barryzhong 评论(0) 有1039人浏览 2013-12-12 13:28

JAVA设计模式学习23——状态模式

状态(state)模式:状态模式的意图是,允许一个对象在其内部状改变时改变它的行为。看起来就像是改变了它的类一样。主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同的一系列类当中,可以把复杂的逻辑判断简单化。 状态模式的结构如下图:  从图中可以看出状态模式有以下角色: 1、抽象状态(State)角色:定义一个接口,用以封装环境对象的一 ...
zzq19860626 评论(1) 有9169人浏览 2013-09-07 11:57

第十三篇 : (State)状态模式

第十三篇:状态模式 定义        GoF为状态模式给出的定义是:允许一个对象在其内部状态发生变化时改变自己的行为,该对象看起来好像你改变他的类型。 UML静态类图 使用案例      有这样一个电子颜料版,他上面有个手柄,可以拉(pull)也可以推(push),每次操作,都会改变颜料的颜色,他们的变化关系如图所示 用传统的方式解决 public void push(ColorSta ...
eksliang 评论(0) 有1577人浏览 2013-04-24 20:13

20.状态模式(State Pattern)

1.定义 当一个对象内在状态改变时,允许其改变行为,这个对象看起来像改变了其类。 状态模式的核心是封装。   2.要解决的问题-过多的if-else状态判断 对象如何在每一种状态下表现出不同的行为?在软件开发过程中,应用程序可能会根据不同的情况作出不同的处理。最直接解决方案是将这些所有可能发生的情况全都考虑到。然后使用if... ellse语句来做状态判断来进行不同情况的处理。但是对复杂状 ...
wangwengcn 评论(0) 有1387人浏览 2012-11-22 14:02

设计模式--状态模式

当一对象的行为取决于他的状态,并且它必须在运行时根据根据状态改变它的行为的时候,可以考虑用状态模式,例如:红、绿灯,可以设计一个颜色的接口,接口包括颜色(状态)、行为,红、绿灯类进行继续,根据不同的状态,将产生不同的行为。 状态模式 有利于减少分支判断。   更多参考开心购的交流专区
wzq106 评论(0) 有953人浏览 2011-11-16 19:03

java常用设计模式之状态模式

------------------------------ 状态模式(state) -------------------------------(1)State模式定义:不同的状态,不同的行为; 或者说,每个状态有着相应的行为.适用场合:State模式在实际使用中比较多,适合"状态的切换".因为我们经常会使用If elseif else 进行状态切换, 如果针对状态的这样判 ...
xuedong 评论(0) 有1395人浏览 2011-08-29 12:23

最近博客热门TAG

Java(141747) C(73651) C++(68608) SQL(64571) C#(59609) XML(59133) HTML(59043) JavaScript(54918) .net(54785) Web(54513) 工作(54116) Linux(50906) Oracle(49876) 应用服务器(43288) Spring(40812) 编程(39454) Windows(39381) JSP(37542) MySQL(37268) 数据结构(36423)

博客人气排行榜

    博客电子书下载排行

      >>浏览更多下载

      相关资讯

      相关讨论

      Global site tag (gtag.js) - Google Analytics