当前位置:首页 > 生活百科

java状态机设计模式及实现(java状态机在订单中应用)

栏目:生活百科日期:2025-04-11浏览:0

状态模式(State Pattern):

一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。

状态模式主要解决,当控制一个对象状态的条件表达式过于复杂时的情况;把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化;

状态模式的角色:

上下文环境(Context)角色、抽象状态(State)角色、具体状态(Concrete State)和客户端(Client)角色;

状态模式的案例:

实现类图:

实现代码:

/** * 上下文环境(Context)角色 */public class Context {private State state;public Context() {state = null;}public void setState(State state) {this.state = state;}public State getState() {return state;}}
/** * 抽象状态(State)角色 */public interface State {   public void doAction(Context context);   }
/** * 具体状态(Concrete State) */public class StartState implements State {public void doAction(Context context) {System.out.println("Player is in start state.");context.setState(this);}public String toString() {return "Start State";}}
/** * 具体状态(Concrete State) */public class StopState implements State {public void doAction(Context context) {System.out.println("Player is in stop state.");context.setState(this);}public String toString() {return "Stop State";}}
/** * 客户端 */public class Client {public static void main(String&[] args) {Context context = new Context();StartState startState = new StartState();startState.doAction(context);System.out.println(context.getState().toString());StopState stopState = new StopState();stopState.doAction(context);System.out.println(context.getState().toString());}}

“java状态机设计模式及实现(java状态机在订单中应用)” 的相关文章

威刚ssd怎么样(威刚固态硬盘评测)

Falcon意为隼,是一种飞翔能力极强的猛禽,威刚用它来给新问世的中高端NVMe固态硬盘命名。威刚Falcon在国内尚未上市,我们可以通过Tom&’...

如何投资理财才赚钱,稳妥的投资方法介绍

今天和大家聊一下关于投资理财组合方式的问题,很多朋友都在收益和风险的问题上纠结,就是想在保住本金的情况下,搏点高收益。有没有办法来平衡一下呢?今天跟大家介绍两种...

2020创业好点子推荐,5个最挣钱又稀缺的行业

现在这个社会就是上班难,但是创业更难,但是一旦创业做好了,那么回报将是无穷大的,当然了,十个创业九个失败,为什么呢?因为失败的人都是盲目跟风的人,根本就没有掌握...

什么是品类营销,品类营销的成功案例分析

(成都糖酒会)★★★★在开始前,我们要分清楚什么是品类,什么是概念,概念和品类,既有相通性也有区别性,很多品类不是品类是概念,而很多概念把自己误认为是品类。酒里...

企业用户画像的7个维度(如何做用户画像分析)

互联网相关企业在建立用户画像时一般除了基于用户维度(userid)建立一套用户标签体系外,还会基于用户使用设备维度(cookieid)建立相应的标签体系。基于c...

iphone7新功能介绍(详解iphone7手机功能)

最近iphone7在数码渠道真是很火爆,很多人臆想十大新功能,可见防水是多少人梦寐以求的功能!一:屏幕蓝宝石玻璃其实蓝宝石的屏幕比一般玻璃更耐磨,而且之前有很多...

利用go语言可以开发什么(简述学python还是java好)

Go语言是一种开源编程语言,可轻松构建简单、可靠且高效的软件。Go语言在2009年首次亮相,是谷歌开发的一种通用型语言。与Python等其他编程语言相比,Go语...

ps2模拟器最新版本到几了(安卓4.0模拟器手机版安装)

大家好,今天给大家评测一款游戏,魂斗罗,这不是我们小时候在家玩的那个小霸王魂斗罗,是主机版的魂斗罗,PS2版本的,这款游戏名字不是叫魂斗罗,是叫做《真魂斗罗》,...

win10企业版密钥激活失败(企业版永久激活方法)

经常有用户来问系统总裁小编win10专业版密钥激活要怎么操作,其实win10专业版密钥激活的操作步骤是非常简单的,下面系统总裁小编就给您带来win10专业版...

商业管理专业学什么,商务管理就业前景分析

这年头,逢人就要读商科,商科里十之八九都要申请商业分析(BusinessAnalytics)专业。这个近三年才涌现出来的新兴专业俨然已成为新生代当红爆款!那么商...