定义:
对象在改变状态时,会改变形为。就像改变了对象一样。
业务场景:
动物园来了,有个饲养员,饲养员有几个状态:
1、上班,正常喂养
2、下班,告知下班了,不喂
3、睡觉,会骂人
作为园长,我调用饲养员的“投喂”方法,饲养员会根据自己状态的不同,而做出不同的反馈。这就是状态模式
怎样达成以上效果?
定义一个状态接口,分别实现三个状态实现类。饲养员持有一个状态接口(多肽,根据不同状态获取不同注入)。“投喂”方法,实际上调用的是状态实现类的方法。而不同的状态实现类,具体的实现是不一样的。以上。
注:如果饲养员有多个动作,那么每个状态实现类都需要实现所有的动作。略微繁琐但是扩展性好。饲养员可以灵活添加状态。代码可维护性