💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
## 状态设计模式 ### 对象的⾏为依赖于它的状态(属性),并且可以根据它的状态改变⽽改变它的相关⾏为 ,属于⾏为型模式允许⼀个对象在其内部状态改变时改变它的⾏为。 状态模式是策略模式的孪⽣兄弟,它们的UML图是⼀样的,但实际上解决的是不同情况的两种场景问题。 ⼯作中⽤的不多,基本策略模式⽐较多。 ### ![](https://img.kancloud.cn/ee/86/ee867fc9a1d697723e63c27478eac093_1597x827.png) ### ## 应⽤场景 ⼀个对象的⾏为取决于它的状态, 并且它必须在运⾏时刻根据状态改变它的⾏为 代码中包含⼤量与对象状态有关的条件语句 ,⽐如⼀个操作中含有庞⼤的多分⽀的条件if else语句,且这些分⽀依赖于该对象的状态 电商订单状态:未⽀付、已⽀付、派送中,收货完成等状态,各个状态下处理不同的事情 ### ## 具体实现(**云效代码study-java项目当中设计模式当中有代码案例**) ### 业务需求: 电商订单状态流转,每步都有不同的操作内容: 新建订单/已⽀付/已发货/确认收货 ### ![](https://img.kancloud.cn/34/e3/34e35cc009ab9a214c1ebc5cc949b002_1795x820.png) ### ![](https://img.kancloud.cn/63/3e/633eb2ec8931ab504c2b9181ca092187_1711x1465.png) ### ![](https://img.kancloud.cn/56/34/5634147d8c3f115157b1cdad6487a0d6_2052x1459.png) ### ![](https://img.kancloud.cn/39/99/3999cd8adba7909902ff776d65d158a4_2374x1457.png) ### ![](https://img.kancloud.cn/72/8b/728b2b0cb49331254340a114ac5bf54c_2359x1531.png) ### ![](https://img.kancloud.cn/a5/ba/a5ba3d8f3d60e64137f527cc073d69f7_2490x1508.png) ### ![](https://img.kancloud.cn/95/d0/95d0b8a0a9a128e3ac8439778b74261f_2815x1462.png)