设计模式之状态模式
状态模式:
概述:不同的状态对应不同的行为,也就是说每个状态都有着相应的行为.
优点:封装转换过程,也就是转换规则
枚举可能的状态,因此,需要事先确定状态种类.
我举一个生活中的例子,比如打电话,电话的状态分为,正在通话中,关机状态,正常状态
package com.mode.state;public interface State {void execute(String oprate);}package com.mode.state;public class Ring {private State state;public State getState() {return state;}public void setState(State state) {this.state = state;}public void operate(String operate){state.execute(operate);}}package com.mode.state;public class Shutdown implements State {@Overridepublic void execute(String oprate) {System.out.println("Shutdown.execute() "+oprate+"请稍候再拨");}}package com.mode.state;public class Call implements State {@Overridepublic void execute(String oprate) {System.out.println("Call.execute() "+oprate+"正在通话中");}}package com.mode.state;public class Normal implements State {@Overridepublic void execute(String oprate) {System.out.println("Normal.execute() "+oprate+"嘟嘟嘟.....");}}package com.mode.state;public class Client {public static void main(String[] args) {Saute saute = new Saute();saute.setState(new Call());saute.operate("对不起,你拨打的用户");saute.setState(new Normal());saute.operate("马上为你接通");saute.setState(new Shutdown());saute.operate("对不起,你拨打的电话已关机,");}}