状态模式
来源:互联网 发布:梦里花落知多少意思 编辑:程序博客网 时间:2024/05/29 12:00
核心思想就是:当对象的状态改变时,同时改变其行为,很好理解!就拿QQ来说,有几种状态,在线、隐身、忙碌等,每个状态对应不同的操作,而且你的好友也能看到你的状态,所以,状态模式就两点:1、可以通过改变状态来获得不同的行为。2、你的好友能同时看到你的变化。
/** * @author: muyichun * @date : 2016年3月23日18:59:40 * @function: 状态模式 */public class Main{public static void main(String[] args) {State state = new State();Context context = new Context(state);//设置第一种状态state.setValue("state1");context.method();//设置第二种状态state.setValue("state2");context.method();}}/** * 状态类的核心类 */class State{private String value;public String getValue(){return value;}public void setValue(String value){this.value = value;}public void method1(){System.out.println("execute the first opt!");}public void method2(){System.out.println("execute the second opt!");}}/** * 状态模式的切换类 */class Context{private State state;public Context(State state){this.state = state;}public State getState(){return state;}public void setState(State state){this.state = state;}public void method(){if (state.getValue().equals("state1")){state.method1();}else if(state.getValue().equals("state2")){state.method2();}}}
——贴上自己喜欢的代码!
0 0
- 状态模式(状态变化)
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- leetcode第一题~~~Counting Bits
- iOS开发-通过btn传递两个实例对象 firstObject和secondObject
- 请求编码
- C++ 个人所得税
- 图示经典算法--选择排序
- 状态模式
- ClassLoader源码
- Reverse Nodes in k-Group
- C#读取CSV文件到DataTable
- 正则表达式
- 使用axis2时在temp文件产生大量缓存
- 开放linux下mysql数据库3306端口
- CentOS编译安装php5.5 libiconv libmcrypt libevent memcached redis以及扩展
- 刷题心得