荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: scanf (carefully), 信区: SoftDev
标  题: OO in C(4): C语言中的面向对象思想(2)
发信站: 荔园晨风BBS站 (2004年12月15日19:16:15 星期三), 站内信件

标题   OO in C(4): C语言中的面向对象思想(2)     选择自 liyuming1978 的
 Blog
关键字   C 软件工程
出处

 不好意思,好像我们公司的安全软件限制了上传文件的大小



3.CALLBACK函数。

我觉得这是C语言的一个创举,虽然它很简单,就象如何把鸡蛋竖起来一样,但是
你如果没想到的话,嘿嘿。如果说静态入口函数实现了一个可管理的宏观的话,
CallBack就是实现了一个可进化的微观:它使得一个函数可以在不重新编译的情况
下实现功能的添加!但是在最最早期的时候,也有蛮多人持反对态度,因为它用了
函数指针。函数指针虽然灵活,但是由于它要访问内存两次才可以调用到函数,第
一次访问函数指针,第二次才是真正的函数调用。它的效率是不如普通函数的。但
是在一个不太苛刻的环境下,函数调用本身就不怎么耗时,函数指针的性能又不是
特别糟糕,使用函数指针其实是一个最好的选择。但是函数指针除了性能,最麻烦
的地方就是会导致程序的“支离破碎”。试想:在程序中,你读到一个函数指针的
时候,如果你愣是不知道这个函数指针指向的是哪个函数,那个感觉真的很糟糕。
(可以看后面的文章,要使用先进的程序框架,避免这样的情况)

三、           Event和Message

看了上面的描述,相信大家多少有些明白为什么要使用Event和Message了。具体的
函数调用会带来很多的问题(虽然从效率上讲,这样做是很好的)。为了提高程序
的灵活性,Event和Message的办法产生了。用名字解析的办法代替通常的函数调用
,这样,如果双方对这样的解析是一致的话,就可以达到一个统一。不过Event和
Message的作用还不仅仅是如此。

Event和Message还有建立进程间通信的功能。进程将自己的消息发给“控制中心”
(简单的就是一个消息队列,和一个while循环不断的取消息队列的内容并执行)
,控制程序得到消息,分发给相应的进程,这样其他进程就可以得到这个消息并进
行响应。

Event和Message是很灵活的,因为你可以随时添加或者关闭一个进程,(仅仅需要
添加分发消息的列表就可以了)Event和Message从程序实现上将我觉得是一样的,
只不过概念不同。Event多用于指一个动作,比如硬件发生了什么事情,需要调用
一个什么函数等等。Message多用于指一个指示,比如什么程序发生了什么操作命
令等等。

四、           小结

其实编程序和写文章一样,都是先有一个提纲,然后慢慢的丰富。先抽象化得到程
序的骨架,然后再考虑各个方面的其他内容:程序极端的时候会发生什么问题?程
序的这个地方的功能现在还不完善,以后再完善会有什么问题?程序是不是可以扩
展的?

本系列文章是我这些阶段的一些心得,目的是抛砖引玉,希望能和大家交流,得到
更多的知识。Liyuming1978@163.com (这个信箱以前发了一个文章 C优化之路,
现在都快成垃圾信箱了,呵呵,网络的力量真是强大呀)



作者Blog:http://blog.csdn.net/liyuming1978/


--
唉,实在没有心情搞这个了!
※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.25.77]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店