设计模式之 strategy和state

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值