设计模式--状态模式

时间:2022-09-23 21:59:43

设计模式--状态模式

在处理一个事情的时候,他的状态发生改变,我们需要应对改变过的状态做不同的处理。 

一般的状态量,我们最简单的都采用的是switch或者if/else来解决

设计模式--状态模式

设计模式--状态模式

但是在面向对象的设计模式来说我们要尽量满足单一职责原则。因此需要将对应的行为进行抽象为对应的对象或接口。

1、状态state要进行抽象,抽象出我们需要进行的状态动作。

设计模式--状态模式

2、对于具体的状态,我们有不同的实现,这里我们要针对单一的动作遵守单一职责的原则。一个具体的状态对象实现具体的动作。

设计模式--状态模式

3、将实际执行者进行对象化,它持有状态对象,主要作用是操作状态对象。

设计模式--状态模式

4、最终调用实际的执行者完成对应的业务:

设计模式--状态模式

总结:这种相对隔离状态的设计模式是很棒,但是涉及的对象有点多。如果是那种小状态的变化还是用switch好了。但是涉及项目的大的状态的话,隔离开发还是很棒的。