当前位置: 首页> 教育> 大学 > 免费图片素材库_上海建筑公司排名_seo实战密码第三版_google推广方式和手段有哪些

免费图片素材库_上海建筑公司排名_seo实战密码第三版_google推广方式和手段有哪些

时间:2025/7/9 19:40:17来源:https://blog.csdn.net/Bof_jangle/article/details/144313847 浏览次数:0次
免费图片素材库_上海建筑公司排名_seo实战密码第三版_google推广方式和手段有哪些

目录

0、定义

1、状态模式的三种角色

2、状态模式的UML类图

3、示例代码


0、定义

        允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。

1、状态模式的三种角色

  • 环境(Context):环境是一个类,该类有抽象状态(State)声明的变量,可以引用任何具体状态类的实例。用户对该环境(Context)类的实例在某种状态下的行为感兴趣。
  • 抽象状态(State):抽象状态是一个接口或抽象类。抽象状态中定义了与环境(Context)的一个特定状态相关的若干个方法。
  • 具体状态(Concrete State):具体状态是实现抽象状态的类。

2、状态模式的UML类图

3、示例代码

抽象状态

package xyz.jangle.design.state;
/*** 抽象状态* @author Administrator**/
public abstract class State {public abstract void handle();}

具体状态A (对拓展开放,可创建多个具体状态)

package xyz.jangle.design.state;public class ConcreteStateA extends State {@Overridepublic void handle() {System.out.println("to do something A ");}}

具体状态B

package xyz.jangle.design.state;public class ConcreteStateB extends State {@Overridepublic void handle() {System.out.println("to do something B ");}}

环境(上下文)(对修改关闭)

package xyz.jangle.design.state;public class Context {private State state;public void request() {if(state != null)state.handle();}public void setState(State state) {this.state = state;}}

客户端(使用)

package xyz.jangle.design.state;
/*** 状态模式* @author Administrator**/
public class AppMain20 {public static void main(String[] args) {ConcreteStateA stateA = new ConcreteStateA();Context context = new Context();context.setState(stateA);context.request();context.setState(new ConcreteStateB());	//切换状态Bcontext.request();}}

运行结果

to do something A 
to do something B 

关键字:免费图片素材库_上海建筑公司排名_seo实战密码第三版_google推广方式和手段有哪些

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: