时间:2021-05-19
定义:在状态模式(State Pattern)中,类的行为是基于它的状态改变的。
特点:
1、封装了转换规则。
2、枚举可能的状态,在枚举状态之前需要确定状态种类。
3、将所有与某个状态有关的行为放到一个类中,并且可以方便地增加新的状态,只需要改变对象状态即可改变对象的行为。
4、允许状态转换逻辑与状态对象合成一体,而不是某一个巨大的条件语句块。
5、可以让多个环境对象共享一个状态对象,从而减少系统中对象的个数。
企业及开发和常用框架中的应用:
实例:
public class Demo { public static void main(String[] args) { Context context = new Context(); State move = new Move(); move.show(context); State stop = new Stop(); stop.show(context); }}class Context{ private State state; public void setState(State state){ System.out.println("给物体加持状态"); this.state = state; }}interface State{ void show(Context context);}class Move implements State{ public void show(Context context) { context.setState(this); System.out.println("物体处于运动状态"); }}class Stop implements State{ public void show(Context context) { context.setState(this); System.out.println("物体处于静止状态"); }}状态模式是用于对象状态比较多的情况,比如完成一件事的时候有未完成、已完成、进行中、搁置等状态,这时候就可以考虑是用状态模式。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
java设计模式之State(状态模式)在状态模式中,一个类的行为基于它的状态的改变而改变。状态模式归属于行为型模式。在下面的实例中,我们创建了一个接口Stat
本文实例讲述了java基于状态模式实现的文档编辑模式切换功能。分享给大家供大家参考,具体如下:一模式定义状态模式:当一个对象的内在状态改变时允许改变其行为,这个
23种设计模式第十八篇:java备忘录模式定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就可以将该对象恢复到原先保存的状
定义状态模式,又称状态对象模式(PatternofObjectsforState),状态模式就是对象的行为模式。状态模式允许一个对象在其内部状态改变的时候改变其
书店管理系统:项目练习目标:1、Java应用程序基本分析2、培养面向对象编程的基本思想3、Java基本设计模式综合应用4、掌握分层和接口的基本设计5、构建合理的