策略是外界给的,策略怎么变,是调用者考虑的事情,系统只是根据所给的策略做事情。
状态是系统自身的固有的,由系统本身控制,调用者不能直接指定或改变系统的状态转移。
状态模式是策略模式的孪生兄弟,是因为它们的UML图是一样的。
但意图却完全不一样,策略模式是让用户指定更换的策略算法,而状态模式是状态在满足一定条件下的自动更换,用户无法指定状态,最多只能设置初始状态。
策略是外界给的,策略怎么变,是调用者考虑的事情,系统只是根据所给的策略做事情。
状态是系统自身的固有的,由系统本身控制,调用者不能直接指定或改变系统的状态转移。
状态模式是策略模式的孪生兄弟,是因为它们的UML图是一样的。
但意图却完全不一样,策略模式是让用户指定更换的策略算法,而状态模式是状态在满足一定条件下的自动更换,用户无法指定状态,最多只能设置初始状态。