Solidity

為什麼我們需要可靠的介面?

  • September 28, 2022

假設 contractA 有一個特殊的功能。並製作了一個包含特殊功能的介面,無需實現。要在另一個contractB中使用該函式,我們可以使用介面,也可以只繼承contractA或呼叫該函式。

直接繼承合約或者從外面呼叫不是更方便嗎?

只是想澄清一點:如果已經部署了合約,則不能繼承它。那是您最需要介面的地方。

即使你是部署程式碼的人,你也應該小心繼承——除非你知道子合約需要父合約的所有功能,否則不要使用它。介面對於分離關注點也很有用。

我們需要 Solidity 中的介面,因為介面提供了一種可重用和可定制的方法來編寫智能合約。

是的,就像在你的例子中一樣,要使用另一個contractB中的函式,我們可以使用介面,但我們也可以繼承contractA或呼叫函式。但是,如果您使用繼承,則需要重寫該方法,因為您使用的是已經實現的實現。如果您使用介面,您可以編寫自己的實現以適應應用程序中的邏輯。然而,雖然繼承在 Solidity 中有常見的用途,但如果要使用庫中的函式,則不能繼承 Solidity 中的庫。

引用自:https://ethereum.stackexchange.com/questions/136513