博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式——状态模式
阅读量:6501 次
发布时间:2019-06-24

本文共 1336 字,大约阅读时间需要 4 分钟。

状态模式:用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题。

结构:Context环境类 :环境类中维护一个State对象,它定义了当前的状态 。

         State:状态接口

         ConcreteState: 具体的状态类,封装了每一个具体类的对应行为。

应用场景:

         线程对象各个状态的切换

         店房间状态的管理

         账号的状态管理

看一个简单的Demo:

 

public interface State {	void handle();}class Booked implements State {	@Override	public void handle() {		System.out.println("您已下单!");	}}class Payed implements State {	@Override	public void handle() {		System.out.println("您已付款!");	}}class Sended implements State {	@Override	public void handle() {		System.out.println("已发货!");	}}class InWay implements State {	@Override	public void handle() {		System.out.println("送货中。。。");	}}class Recieved implements State {	@Override	public void handle() {		System.out.println("已确认收货!");	}}public class Context {		private State state;		public Context() {}	public Context(State state) {		this.state = state;	}		public void setState(State state) {		System.out.println("订单信息已更新!");		this.state = state;		this.state.handle();	}}public class Client {	public static void main(String[] args) {		Context context = new Context();				context.setState(new Booked());		context.setState(new Payed());		context.setState(new Sended());		context.setState(new InWay());		context.setState(new Recieved());			}}

运行结果:

订单信息已更新!

您已下单!
订单信息已更新!
您已付款!
订单信息已更新!
已发货!
订单信息已更新!
送货中。。。
订单信息已更新!
已确认收货!

 

转载于:https://www.cnblogs.com/wxisme/p/4544432.html

你可能感兴趣的文章
luogu P1280 尼克的任务 序列DP
查看>>
Android 实时文件夹
查看>>
获取文件最后修改时间的VC代码
查看>>
适用于0基础小伙伴的HTML知识点总结 先到先得哟
查看>>
ThinkPHP子类继承Controller类的注意事项
查看>>
iphone UIView的一些基本方法理解
查看>>
sys.check_constraints
查看>>
vue问题
查看>>
Linux常用命令大全
查看>>
ThinkPHP 框架学习
查看>>
yii1框架,事务使用方法
查看>>
css3箭头效果
查看>>
Python学习笔记【第一篇】:认识python和基础知识
查看>>
MathType在手,公式不求人!
查看>>
测试用例设计
查看>>
三层架构
查看>>
Python变量类型(l整型,长整形,浮点型,复数,列表,元组,字典)学习
查看>>
解决方案(.sln)文件
查看>>
理解cookie和session机制
查看>>
【Treap】bzoj1588-HNOI2002营业额统计
查看>>