这两个模式UML相同,其实他们的运用场景有很大区别。
1、策略模式
封装算法,让使用者可以更换不同的算法。变is a为has a 用组合来代替继承。
一旦置入算法,不会因使用者的内部状态来改变算法。
采用哪种算法,是由使用者掌握的。
2、状态模式
对象的内部状态决定它的行为。不同的状态有不同的行为,不同的行为又切换不同的状态。
当方法内出现很多if else时可以考虑使用状态模式。
状态模式重要的一点是在行为执行时,状态的变更。
这两个模式UML相同,其实他们的运用场景有很大区别。
1、策略模式
封装算法,让使用者可以更换不同的算法。变is a为has a 用组合来代替继承。
一旦置入算法,不会因使用者的内部状态来改变算法。
采用哪种算法,是由使用者掌握的。
2、状态模式
对象的内部状态决定它的行为。不同的状态有不同的行为,不同的行为又切换不同的状态。
当方法内出现很多if else时可以考虑使用状态模式。
状态模式重要的一点是在行为执行时,状态的变更。