这个叫策略模式。最近感觉后面这几个行为模式都特别得像!
策略模式对某些算法进行了封装(不一定是算法咯)!
比如翻译一句话,用法语,日语,英语等翻译,就可以采用策略模式。
input...
translate..
output...
在translate中这里传入策略对象,即可完成相应功能。
这种将算法的变化部分独立出来的方式,就是策略。
state模式是状态模式,这个主要解决了大量使用if,else的情况,说实话,这种内部代码大量采用If,else等类似的语句,可以考虑
由state模式来替换。state模式就是每种分支对应一种状态,然后具体处理在状态对象内部完成。这里有几个注意点:
1 state模式需要外部的context,往往state模式自己干不了多少事情,必须与context结合才行。
2 状态的切换,我个人比较喜欢由context来完成,否则state自己得记住下一个state是哪个具体实例,挺麻烦的。
3 state如果内部不保存某些状态的话,可以采用singleton方式得到。
想想,我们那个NTC的worktype可以换成由state方式来做吗?
1 type不同的问题,这个应该不能换,好像也没什么模式支持这个。
2 每个工种内部的状态,倒是可以由它来完成,咋做呢?好像很麻烦呀....有啥子好处吗?不如用状态机来做。