@105 作业三:深入理解Callback函数
实验目标
参考《代码中的软件工程》第六章可复用软件设计及lab5.2的源代码,完成实验,总结Callback函数的工作机制以及通过参数进行解耦合的方法,深入理解接口设计中的抽象分层。
Callback函数
什么是Callback函数
回调函数是一个函数,形式上和其他函数一样,函数名和参数。回调函数自身会被当做参数传递给另一个函数,被其调用。这个作为参数的函数,就叫回调函数。
callback函数机制通常用于异步编程中。在异步编程中,在等待操作完成的同时,我们可以继续执行其他代码,以避免程序被阻塞。当等待操作完成后,使用callback函数机制来通知程序,以便程序可以在操作完成后执行相应的代码。
具体代码
在Condition中,参数…(tLinkTableNode * pNode, void * args),callback
在AddLinkTableNode和DelLinkTableNode函数中,代码块是原子的,可以用来实现异步编程
代码思路
1.args 指针强转为 char 类型的指针,赋值给 cmd 指针; pLinkTableNode 指针强转为 tDataNode 类型的指针,赋值给 pNode 指针
2.调用 strcmp 函数,传入 pNode->cmd 和 cmd 两个字符串指针,得到返回值
3.返回值为 0,表示两个字符串相等,就返回 success;否则返回failure
总结
callback优缺点
优点:
1.增加程序的灵活性和解耦性
2.处理异步操作
缺点:
1.嵌套过多的回调函数,导致代码难以阅读和维护
2.不能直接返回return
实验总结
callback就是不同程序模块之间的接口和约定,是软件分层设计的基本方式。它实现了调用者和被调用者的解耦,增加了程序设计的灵活性。当需要的时候只需要通过约定好的接口。在C语言中,callback是用指针函数实现的。通过本次实验,我对回调函数有了更深入的理解和掌握,也提高了我的编程能力和思维方式。