Solidity

(子)合約 vs. 庫 vs. 結構 vs. 介面

  • December 11, 2017

首先,我搜尋並閱讀了這些問題:

使用結構創建多個契約或單個契約

子契約與結構

為什麼有這麼多使用分離契約的例子(例如齊柏林飛艇中的擁擠銷售契約……)?如果我在大多數情況下都做對了,那麼不使用單獨的契約是有意義的。使用庫和介面甚至沒有意義。恕我直言,如果我不必為執行支付汽油費,那麼界面是有意義的。但是我們在區塊鏈上,並希望使合約盡可能“苗條”/“輕”。因此,我什至只會從庫中複製我需要的程式碼函式(如果我使用所有函式,則只使用整個庫)。該介面僅用於檢查和調試…

您希望將邏輯分成多個契約/庫/等有兩個不同的原因。

1-模組化、易用性、易維護性。如果您放棄使用庫或從其他合約繼承,您的程式碼將成為一個包含數十個函式的巨大文件,難以維護、讀取、重用等。

2- 實現父/子合約更多地與您的程式碼邏輯有關。例如,對於一個投標應用程序,您可以有一個契約來儲存所有正在進行的投標及其相應數據(投標人、中標等),或者,您可以創建每個投標契約都擁有自己的邏輯,並且然後是一個父契約,它保留對創建的每個投標契約的引用。

每種方法都有自己的優點和缺點,這實際上取決於您的應用程序的要求。

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