标签:
STATE?跟MM交往时,一定要注意她的状态哦,在不同的状态时她的行为会有不同,比如你约她今天晚上去看电影,对你没兴趣的MM就会说“有事情啦”,对你不讨厌但还没喜欢上的MM就会说“好啊,不过可以带上我同事么?”,已经喜欢上你的MM就会说“几点钟?看完电影再去泡吧怎么样?”,当然你看电影过程中表现良好的话,也可以把MM的状态从不讨厌不喜欢变成喜欢哦。 状态模式:状态模式允许一个对象在其内部状态改变的时候改变行为。这个对象看上去象是改变了它的类一样。状态模式把所研究的对象的行为包装在不同的状态对象里,每一个状态对象都属于一个抽象状态类的一个子类。状态模式的意图是让一个对象在其内部状态改变的时候,其行为也随之改变。状态模式需要对每一个系统可能取得的状态创立一个状态类的子类。当系统的状态变化时,系统便改变所选的子类。
1 package com.soyoungboy.state; 2 publicinterfaceState{ 3 /** 4 * 状态对应的处理 5 */ 6 publicvoid handle(String sampleParameter); 7 }
1 package com.soyoungboy.state; 2 publicclassGrilAimplementsState{ 3 @Override 4 publicvoid handle(String sampleParameter){ 5 System.out.println("GrilA want to see :"+ sampleParameter); 6 } 7 }
1 package com.soyoungboy.state; 2 publicclassGrilBimplementsState{ 3 @Override 4 publicvoid handle(String sampleParameter){ 5 System.out.println("GrilB not want to see :"+ sampleParameter); 6 } 7 }
1 package com.soyoungboy.state; 2 publicclassContext{ 3 // 持有一个State类型的对象实例 4 privateState state; 5 publicvoid setState(State state){ 6 this.state = state; 7 } 8 /** 9 * 用户感兴趣的接口方法 10 */ 11 publicvoid request(String sampleParameter){ 12 // 转调state来处理 13 state.handle(sampleParameter); 14 } 15 }
1 package com.soyoungboy.state; 2 publicclassStateModel{// 状态模式 3 publicstaticvoid main(String[] args){ 4 test(); 5 } 6 publicstaticvoid test(){ 7 // 创建状态 8 State state =newGrilB(); 9 State state1 =newGrilA(); 10 // 创建环境 11 Context context =newContext(); 12 // 将状态设置到环境中 13 context.setState(state); 14 // 请求 15 context.request("firm"); 16 context.setState(state1); 17 // 请求 18 context.request("firm"); 19 } 20 }
标签:
原文地址:http://www.cnblogs.com/androidsuperman/p/d03f7ee15be7894ae1bf6fe2e18dddbf.html