状态模式
来源:互联网 发布:极客学院python视频 编辑:程序博客网 时间:2024/05/16 19:05
状态模式
状态模式: 当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。
该模式适用于一种情况:某类有很多状态,在不同的状态下,相同的方法执行的逻辑是不同的。这样就能把对象让对象动作的执行更方便,貌似是改变了对象,但是只是改变了对象的状态。
结构图:
代码:
package state; public interface IState { void call(Context context); //其他操作 } public class WaitState implements IState{ @Override public void call(Context context) { System.out.println("连接成功,可以通话"); context.setState(new ConnectState()); } } public class ConnectState implements IState{ @Override public void call(Context context) { System.out.println("over"); } }
Context类:
package state;public class Context { private IState state; public void call(){ state.call(this); } public void changeState(IState state){ this.state = state; } public IState getState() { return state; } public void setState(IState state) { this.state = state; } }
客户端调用:
package state; public class MainClass { public static void main(String[] args) { Context context = new Context(); IState waitState = new WaitState(); context.setState(waitState); context.call(); context.call(); } }
- 状态模式(状态变化)
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 【OpenCV入门指南】第八篇 灰度直方图
- javascript 冒泡
- 简明 Vim 练级攻略
- 黑马程序员_java集合框架
- Struts 2获得request,response,session对象
- 状态模式
- sd卡分析
- 新建oracle的实例
- vold NetlinkManager
- 字符编码简介:ASCII,Unicode,UTF-8,GB2312
- 17周项目3-有相同数字?
- 黑马程序员_java泛型
- 对oracle 触发器的一些见解
- JDK里的设计模式