分层架构中回调的使用
分层架构
分层架构将系统分成许多组,每个组都包含解决特定问题领域的代码,这些组称为层。
大多数企业级应用程序具有三层高级应用程序架构。
表示层
业务层
持久层
什么是回调?
回调,有时在计算机编程中称为“调用后”函数,是作为参数提供给其他代码的任何可执行代码,期望其他代码将在特定时间回调(执行)输入.此执行可以立即执行,如在同步回调中,也可以稍后执行,如在异步回调中。
回调在编程语言中以多种方法实现,其中最常见的是子例程、lambda表达式、块和函数指针。
分层架构中回调的使用
开发上层是为了使事情更容易使用(如SDK),而下层是与网络(对于基于网络的项目)或系统级调用(对于基于OS的项目)接口的真正层。
因此,我们可以直接从较高层的源文件调用在较低层定义(和声明)的函数,并通过函数参数提供数据。但是,我们不能简单地从下层函数调用上层函数,因为这会导致循环依赖。结果,回调进入了画面。
让我们假设upperlayer.c和lowerlayer.c分别是上层和下层的源文件。lowerlayer.h是lowerlayer.c头文件。
的功能参考notify_observer()被提供给lowerlayer.c为寄存器回调在一个参数upperlayer.c。
在底层,这称为注册回调。底层现在知道notify_observer函数引用。
registercallback()函数只是将函数引用保存在全局函数指针g_notify_ob中,允许任何文件函数调用notify_observer()。
当下层需要将数据传送到上层时,它只是notify_observer()通过调用来调用g_notify_ob()。