分層架構中回撥函式的使用
分層架構
分層架構將系統劃分為多個組,每個組包含用於解決特定問題領域的程式碼,這些組被稱為層。
大多數企業級應用程式都具有一個三層高階應用程式架構。
- 表示層
- 業務層
- 持久層
什麼是回撥函式?
在計算機程式設計中,回撥函式,有時也稱為“呼叫後”函式,是作為引數傳遞給其他程式碼的任何可執行程式碼,期望其他程式碼在特定時間回撥用(執行)輸入。此執行可以立即發生,如同步回撥,也可以稍後發生,如非同步回撥。
回撥函式在程式語言中以多種方式實現,其中最常見的是子例程、lambda 表示式、塊和函式指標。
分層架構中回撥函式的使用
上層旨在使事物更易於使用(例如 SDK),而下層是與網路(對於基於網路的專案)或系統級呼叫(對於基於作業系統的專案)互動的實際層。
因此,我們可以直接從上層原始檔呼叫下層中定義(和宣告)的函式,並透過函式引數提供資料。但是,我們不能簡單地從下層函式呼叫上層函式,因為這會導致迴圈依賴。因此,回撥函式應運而生。
假設**upperlayer.c**和**lowerlayer.c**分別是上層和下層原始檔。**lowerlayer.h**是**lowerlayer.c**的標頭檔案。
**notify_observer()**的函式引用作為**upperlayer.c**中註冊回撥的引數傳遞給**lowerlayer.c**。
在下層,這被稱為註冊回撥函式。下層現在知道**notify_observer**函式引用。
register **callback()**函式只是將函式引用儲存在全域性函式指標**g_notify_ob**中,允許任何檔案函式呼叫**notify_observer()**。
當底層需要向高層傳遞資料時,它只需透過呼叫**g_notify_ob()**來呼叫**notify_observer()**。
廣告
資料結構
網路
關係型資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP