状态模式与策略模式

策略模式

定义了算法族,分别封装起来,让它们之间可以相互替换
算法 独立于 主体类
把行为算法封装为一个接口,以将不同的「策略」赋予主体类
notion image
 
 

状态模式

允许对象在内部状态改变时改变对象的行为
具体点讲就是将「状态」封装成一个接口或者抽象类,对象内部存一个当前的状态类对象,对对象进行操作并可能发生状态转移时,调用具体状态类的override方法
将状态和类解耦,对象对外暴露的就是这些操作,但是内部发生的状态改变不由对象来做,而是由状态类来做
notion image