Java 状态模式

场景:

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

定义:

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

状态模式:

示例:

  接口类:

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值