设计模式之 strategy和state

来源:互联网 发布:管家婆软件销售怎么 编辑:程序博客网 时间:2024/04/29 03:19

这个叫策略模式。最近感觉后面这几个行为模式都特别得像!

策略模式对某些算法进行了封装(不一定是算法咯)!

比如翻译一句话,用法语,日语,英语等翻译,就可以采用策略模式。

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 每个工种内部的状态,倒是可以由它来完成,咋做呢?好像很麻烦呀....有啥子好处吗?不如用状态机来做。

原创粉丝点击