java 行为模式 状态模式 封装数据的状态流转逻辑

状态模式封装了转换规则,通过将与特定状态相关的行为放入独立的类中,使得对象在状态变化时行为也随之改变。该模式在对象状态依赖其行为且存在大量条件语句的情况下适用。然而,它也会增加系统类和对象数量,且不完全符合开闭原则,扩展状态需要修改源代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

package com.designpattern;

/**
 * 状态模式
 */
public class StatePatternDemo {


    public static void main(String[] args) {
        Context context = new Context(new NewState());
        context.execute(1);
        context.execute(2);
        context.execute(3);

        // 适合场景,数据有状态,状态就一定会流转,从状态 1 变成状态2
        // 将不同的状态要执行的代码逻辑封装在不同的state类中
        // 有一个 context类,负责根据传入的参数,决定这份数据的状态流转到什么状态

        // 适合的场景太明显了,只要有状态,都按照标准的状态模式来实现,改进
        // 不同的状态逻辑放在不同state类
        // 有一个类负责状态之间的流转以及状态逻辑的执行
    }

    public interface State {
        public void execute();
    }


    public static class NewState implements State {
        @Override
        public void execute() {
            System.out.println("新建销售出库单逻辑");
        }
    }

    public static class ApprovingState implements State {
        @Override
        public void execute() {
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值