状态模式

原创 2012年03月30日 22:49:18

java中状态模式的一个小例子:

class Actor {
	public void act() {
	}
}

class HappyActor extends Actor {
	public void act() {
		System.out.println("HappyActor");
	}
}

class SadActor extends Actor {
	public void act() {
		System.out.println("SadActor");
	}
}

class Stage {

	/**
	 * 初始状态
	 * */
	private Actor actor = new HappyActor();

	/**
	 * 改变其状态
	 * */
	public void change() {
		actor = new SadActor();
	}

	/**
	 * 显示其行为
	 * */
	public void performPlay() {
		actor.act();
	}
}

public class Transmogrify {
	public static void main(String[] args) {
		Stage stage = new Stage();

		/**
		 * 显示初始状态信息
		 * */
		stage.performPlay();

		/**
		 * 改变其状态
		 * */
		stage.change();

		/**
		 * 打印状态改变后的信息
		 * */
		stage.performPlay();
	}
}


 

设计模式读书笔记-----状态模式

在介绍状态模式之前,我们先来看这样一个实例:你公司力排万难终于获得某个酒店的系统开发项目,并且最终落到了你的头上。下图是他们系统的主要工作(够简单)。        当你第一眼看到这个系统的...
  • chenssy
  • chenssy
  • 2013年09月04日 21:19
  • 11976

状态模式-订单应用

今天翻了翻《领域驱动设计与模式实战》,里面详细讲解了“状态模式”,说来我对它并不陌生,几年前,我在看《Java与模式》的时候就仔细研究过,不过这么多年来却从没在实战中应用过,并不是没有遇到合适的场景,...
  • it_man
  • it_man
  • 2013年10月07日 15:54
  • 4680

设计模式之状态模式

定义:允许一个对象在其内部状态变化时改变它的行为,对象看起来似乎修改了它所属的类。 类图:      说明:Context表示环境类,它定义了客户应用程序感兴趣的接口,并维护一个Co...
  • u012569119
  • u012569119
  • 2015年06月28日 16:25
  • 756

Unity3d之设计模式(五)状态模式

状态模式 在状态模式(State Pattern)中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。 在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而...
  • qq563129582
  • qq563129582
  • 2016年12月16日 17:42
  • 1101

设计模式之状态模式

模式简介 允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类,(State Pattern)是设计模式的一种,属于行为模式。 定义 (源于Design Pattern...
  • liaodehong
  • liaodehong
  • 2016年08月21日 16:06
  • 1125

状态模式——省去if-else的繁琐结构

一句话描述状态模式 定义功能接口,不同状态下的功能实现,定义状态接口,在controller中通过setState来实现后续不同行为的产生。 功能接口public interface Func...
  • qq_30124547
  • qq_30124547
  • 2016年11月12日 22:59
  • 1033

【设计模式】学习笔记14:状态模式(State)

认识状态模式 假设有一个糖果机, 它的工作状态图如下:要用代码实现糖果机的功能, 如果不用状态模式: 一种方法是创建一个类,它的作用就是一个状态机,对每一个动作,我们都创建了一个对应的方法,这些方法...
  • shuangde800
  • shuangde800
  • 2013年08月22日 00:15
  • 19676

什么时候使用状态模式

前言 最近感觉架构师越来越杂,随随便便面试一个人,简历上都要写上架构相关的内容,好像写上就变成大神一样,但是一细问,却又什么都说不出来,而且问知道哪些设计模式,除了单例,工厂,观察者几个能叫上名,其...
  • u010479969
  • u010479969
  • 2016年12月06日 21:28
  • 222

设计模式--观察者模式、状态模式

【观察者模式】          多个观察者同时监听一个主题,一旦主题对象发生改变便会通知所有的观察者对象,并相应自己的更新事件!                                   ...
  • u012466304
  • u012466304
  • 2014年12月09日 17:40
  • 1906

C#状态模式——解决方法过长问题

上周进京赶考GCT(硕士专业学位研究生入学资格考试),需要提前动身去看考场,顺便和同伴一起在北京找个酒店住下,安顿好之后,当躺下的之后笔者想的不是第二天如何应考,而是脑袋了充满了状态,状态,状态,状态...
  • u010927640
  • u010927640
  • 2015年10月29日 16:16
  • 1481
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:状态模式
举报原因:
原因补充:

(最多只允许输入30个字)