关于状态相关函数调用的处理办法
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;
经过这样处理可以避免每次执行功能函数时,进行状态检测。可以有效减少运算量。
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;
经过这样处理可以避免每次执行功能函数时,进行状态检测。可以有效减少运算量。
相关文章推荐
- nginx一般的http请求建立处理,发送函数调用,以及各个phase的状态(等完善)
- C语言中时间调用处理的相关函数介绍
- iOS 【关于百度地图大头针标记 选中状态/点击状态 的区别及处理办法】
- C语言中,时间调用处理的相关函数介绍
- 关于C++——理解C++默默编写并调用了哪些函数&&函数初始化式(初始化列表相关)
- 关于VS中各种不安全函数的处理办法
- C语言中,时间调用处理的相关函数介绍
- 关于Jquery Ajax 在IE中异步调用失败的解决办法
- 关于函数调用的loop的一个问题
- 关于PHP-Zend framework2 框架 学习过程。 阅前须知: ZF2中的配置文件是可以静态文件配置来注册和通过相关函数动态注册。 1.EventManager(事件驱动),关于事件驱动,在ZF2相关资料没有详细说明,可以参考ANDROID的事件驱动,MFC的消息响应/事件驱动。
- Spring AOP在函数接口调用性能分析及其日志处理方面的应用
- 函数作为参数调用(关于函数接口插件的想法)
- C++笔试题 关于函数析构函数未调用的问题
- Zend studio for eclipse中使php可以调用mysql相关函数的设置方法
- 关于勒索软件问题出现后的处理办法
- lamp使用php处理上传文件,调用move_uploaded_file函数遇到目录写权限问题及解决过程
- 函数参数是数组且是传址方式的处理办法(C#)
- 关于container_of和list_for_each_entry 及其相关函数的分析
- 关于中断处理程序中的关中断函数disable_irq和disable_irq_nosync
- JAVA配置相关注意事项和javac不是内部或外部命令的处理办法