分層架構中回撥函式的使用


分層架構

分層架構將系統劃分為多個組,每個組包含用於解決特定問題領域的程式碼,這些組被稱為層。

大多數企業級應用程式都具有一個三層高階應用程式架構。

  • 表示層
  • 業務層
  • 持久層

什麼是回撥函式?

在計算機程式設計中,回撥函式,有時也稱為“呼叫後”函式,是作為引數傳遞給其他程式碼的任何可執行程式碼,期望其他程式碼在特定時間回撥用(執行)輸入。此執行可以立即發生,如同步回撥,也可以稍後發生,如非同步回撥。

回撥函式在程式語言中以多種方式實現,其中最常見的是子例程、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()**。

更新於: 2021年10月28日

344 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.