前言
想必大家对23中设计模式中的状态模式应该或多或少都有一定了解,但是在具体工作中可能由于没有复杂的场景或者没有对状态模式有深刻的理解不知道怎么应用,今天会以金融支付系统实际应用场景为例演示状态模式和状态机的应用
1.什么是状态模式有什么优劣势?
还不知道状态模式的可以看一下 大话设计模式 - 状态模式 ,官方解释一句话概括:“允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类,(State Pattern)是设计模式的一种,属于行为模式。”第一次听说可能不是很好理解,但是我们可以认为实际场景中涉及到状态的变更场景如最典型电商发货会有:已发货、已收获,之类的状态,而我个人理解状态模式在实际工作中最大的优势就是:
*减少各种状态重复的if else判断导致的代码出错以及整洁度
*各个状态本身可以处理自己的状态以及下一状态的流转实现单一职责
但是软件设计没有完美一说,状态模式的劣势和设计不足也很容易体现:
*各种状态由于是独立一个类会导致类的暴增
*增加新的状态的时候不可避免的会违反开闭原则&#x