您的位置:首页 > 编程语言 > Java开发

Java 状态模式

2016-08-19 23:57 281 查看
场景:

        一业务系统 报表的报送流程,状态有 未报送、已报送、审核通过 和 审核不通过退回 状态

定义:

    当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。

状态模式:



示例:

  接口类:

public interface  WaterState {

public void state();

}


  水凝固状态类:

public  class FreezeState implements WaterState {

public void state(){
System.out.println("Water freezing");
}
}


  水蒸发类:

public class EvaporateState implements WaterState {

public void state(){
System.out.println("Water evaporating");
}

}
容器类,对应模式中的Context类:

public class Water implements WaterState {

private WaterState waterState;

public WaterState getWaterState() {
return waterState;
}

public void setWaterState(WaterState waterState) {
this.waterState = waterState;
}

@Override
public void state() {
System.out.println("Water start changed ...");
waterState.state();
}
}
测试类:
public class WaterMain {
public static void main(String args[]) {
Water water = new Water();
WaterState waterState = new EvaporateState();
water.setWaterState(waterState);
water.state();
}
}
结果:

Water start changed ...
Water evaporating
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  状态模式 java