【行为型模式】状态模式(state)之23种java设计模式

State接口类

public interface State {
	void handle();
}

BookedState类

/**
 * 已预订状态
 * @author Administrator
 *
 */
public class BookedState implements State {
	@Override
	public void handle() {
		System.out.println("房间已预订!别人不能定!");
	}

}

CheckedInState类

/**
 * 已入住状态
 * @author Administrator
 *
 */
public class CheckedInState implements State {

	@Override
	public void handle() {
		System.out.println("房间已入住!请勿打扰!");
	}

}

FreeState类

/**
 * 空闲状态
 * @author Administrator
 *
 */
public class FreeState implements State {

	@Override
	public void handle() {
		System.out.println("房间空闲!!!没人住!");
	}
}

HomeContext类

/**
 * 房间对象
 * @author Administrator
 *
 */
public class HomeContext {
	//如果是银行系统,这个Context类就是账号。根据金额不同,切换不同的状态!

	private State state;

	public void setState(State s){
		System.out.println("修改状态!");
		state = s;
		state.handle();
	}

}

Client测试类

public class Client {
	public static void main(String[] args) {
		HomeContext ctx = new HomeContext();

		ctx.setState(new FreeState());
		ctx.setState(new BookedState());

	}
}
时间: 2024-09-28 20:41:37

【行为型模式】状态模式(state)之23种java设计模式的相关文章

23种Java设计模式(4)-关系模式

C.关系模式(11种) 先来张图,看看这11中模式的关系: 第一类:通过父类与子类的关系进行实现. 第二类:两个类之间. 第三类:类的状态. 第四类:通过中间类 父类与子类关系 一.策略模式(strategy) 策略模式定义了一系列算法,并将每个算法封装起来,使他们可以相互替换,且算法的变化不会影响到使用算法的客户.需要设计一个接口,为一系列实现类提供统一的方法,多个实现类实现该接口,设计一个抽象类(可有可无,属于辅助类),提供辅助函数,关系图如下: 图中ICalculator提供同意的方法,A

23种Java设计模式

1.FACTORY——追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了.麦当劳和肯德基就是生产鸡翅的Factory 工厂模式:客户类和工厂类分开.消费者任何时候需要某种产品,只需向工厂请求即可.消费者无须修改就可以接纳新产品.缺点是当产品修改时,工厂类也要做相应的修改.如:如何创建及如何向客户端提供. 2.BUILDER——MM最爱听的就是“我爱你”这句话了,见到不同地方的MM,要能够用她们的

【行为型模式】模板方法模式(template method)之23种java设计模式

BankTemplateMethod抽象类 public abstract class BankTemplateMethod { //具体方法 public void takeNumber(){ System.out.println("取号排队"); } public abstract void transact(); //办理具体的业务 //钩子方法 public void evaluate(){ System.out.println("反馈评分"); } pub

行为型模型 状态模式

行为型模型 状态模式 Context:用户对象        拥有一个State类型的成员,以标识对象的当前状态: State:接口或基类         封装与Context的特定状态相关的行为: ConcreteState:接口实现类或子类         实现了一个与Context某个状态相关的行为. 适用于:         对象的行为,依赖于它所处的当前状态.行为随状态改变而改变的场景. /** * 行为型模型 状态模式 * State模式也叫状态模式,是行为设计模式的一种. * St

Java设计模式(十) 备忘录模式 状态模式

(十九)备忘录模式 备忘录模式目的是保存一个对象的某个状态,在适当的时候恢复这个对象. class Memento{ private String value; public Memento(String value){ this.value = value; } public String getValue() { return value; } public void setValue(String value) { this.value = value; } } class Storage

23种软件设计模式

23种软件设计模式  本人是三本计科专业的学生,过了19年上半年的中级软件设计师,在辅导书上接触到23种软件设计模式的概念与作用.如果单纯的只是想把软设过了就只需要了解创建型模式,结构型模式,行为型模式分别有哪些设计模式,还要牢记每个设计模式的定义.本人有19年软件设计师最新的资料,有需要可自行下载. 参考:http://c.biancheng.net/view/1320.html 链接:https://pan.baidu.com/s/15bY8mUvIchPuCdPQUE6OSw    提取码

简述23种软件设计模式

简述23种软件设计模式 一.设计模式分类 总体来说设计模式分为三大类: 五种创建型模式:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 七种结构型模式:适配器模式.装饰器模式.代理模式.外观模式.桥接模式.组合模式.享元模式. 十一种行为型模式:策略模式.模板方法模式.观察者模式.迭代子模式.责任链模式.命令模式.备忘录模式.状态模式.访问者模式.中介者模式.解释器模式. 二.设计模式概述 创建型模式 1.工厂方法模式 工厂方法模式的创建是因为简单工厂模式有一个问题,在简单工厂模式

设计模式(行为型)之状态模式(State Pattern)

PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN.因为CSDN也支持MarkDown语法了,牛逼啊! [工匠若水 http://blog.csdn.net/yanbober] 阅读前一篇<设计模式(行为型)之模板方法模式(Template Method Pattern)>http://blog.csdn.net/yanbober/article/details/45501715 概述 状态模式用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题.当系统中

java设计模式--行为型模式--状态模式

什么是行为型模式,小编觉得就是对行为的一种描述啦,一种对某种行为模型的定义. 状态模式: 1 状态模式 2 概述 3 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新. 4 5 6 适用性 7 1.一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为. 8 9 2.一个操作中含有庞大的多分支的条件语句,且这些分支依赖于该对象的状态. 10 这个状态通常用一个或多个枚举常量表示. 11 通常,有多个操作包含这一相同的条件结构.