状态模式

来源:互联网 发布:我欲封天灵宠进阶数据 编辑:程序博客网 时间:2024/06/16 07:16
//表示状态的接口类public interface State {void smile();void cry();void say();}
//高兴的状态public class HappyState implements State{@Overridepublic void cry() {System.out.println("高兴的哭");}@Overridepublic void say() {System.out.println("高兴的说");}@Overridepublic void smile() {System.out.println("高兴的笑");}}
//不高兴的状态public class UnHappyState implements State{@Overridepublic void cry() {System.out.println("伤心的哭");}@Overridepublic void say() {System.out.println("不高兴的说");}@Overridepublic void smile() {System.out.println("不高兴的笑");}}
public class MM{private State state = new HappyState();//在这里的状态决定了mm的行为private String name;public MM(State state){//可以在外部传递mm的状态this.state=state;}public MM(){}public String getName() {return name;}public void setName(String name) {this.name = name;}public void cry() {state.cry();}public void say() {state.say();}public void smile() {state.smile();}}
public class Test {public static void main(String[] args) {MM mm = new MM(new HappyState());mm.cry();MM mm1=new MM(new UnHappyState());mm1.cry();/** * 运行结果: * 高兴的哭 * 伤心的哭 */}}
原创粉丝点击