您的位置:首页 > 其它

关于状态相关函数调用的处理办法

2012-10-25 10:28 239 查看
原来在func中有:

if(a==0)

f0();

else if(a>0 and a<10)

f1();

else if(a> 50)

f2();

else

f3();

面向对象的思想里,把这个类拆成多个,使用策略模式可以去掉if语句。

如果在函数式语法系统里怎么处理方便呢?

如下:

添加一个函数指针:

void (* funPointer)()

funPointer pF;



func() 函数被简化为一句 pF();

在a改变时:

if(a==0)

pF = f0;

else if(a>0 and a<10)

pF = f1;

else if(a> 50)

pF = f2;

else

pF = f3;

经过这样处理可以避免每次执行功能函数时,进行状态检测。可以有效减少运算量。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐