Bitcoin-Core
介面如何在比特幣核心中使用和工作?
有一個名為 interfaces的目錄。我在其他地方看到過介面類的用法,但從未理解它們是如何工作的,因為它們只是一個普通的介面,因此它們自己什麼都不做。有人可以解釋他們在程式碼中的工作機制嗎?
介面類只提供 API 定義。
例如,
interface::Wallet
該類聲明了一個虛擬interfaces::Wallet::getWalletTxs()
方法,GUI 程式碼可以呼叫該方法來列出錢包交易。錢包程式碼提供了一個wallet::WalletImpl
繼承自該方法的類interfaces::Wallet
並提供了wallet::WalletImpl::getWalletTxs()
該方法的實現。由於介面定義,GUI程式碼可以通過介面呼叫錢包程式碼,而無需連結到錢包程式碼,甚至不必執行在同一個程序中。