状态模式

定义一个state接口,在这个接口中,每个动作都有一个对应的方法。

然后维机器的每个状态实现状态类,这些类负责在对应的状态下进行机器的行为。

这样就能将动作委托到状态类。

状态模式允许对象在内部状态改变时候改变它的行为,对象看起来好像修改了它的类。对象类拥有多个状态对象,并有一个状态对象记录当前状态。

讲对象封装到对象本身的状态中,这样就能根据对象本身的状态来改变对象了。

该模式适用于一种情况:某类有很多状态,在不同的状态下,相同的方法执行的动作是不同的。这样就能把对象让对象动作的执行更方便,貌似是改变了对象,但是只是改变了对象的状态。

策略模式是通过组合委托来执行不同的行为的。

原文地址:https://www.cnblogs.com/macula7/p/1960838.html