Solidity
(子)合約 vs. 庫 vs. 結構 vs. 介面
首先,我搜尋並閱讀了這些問題:
為什麼有這麼多使用分離契約的例子(例如齊柏林飛艇中的擁擠銷售契約……)?如果我在大多數情況下都做對了,那麼不使用單獨的契約是有意義的。使用庫和介面甚至沒有意義。恕我直言,如果我不必為執行支付汽油費,那麼界面是有意義的。但是我們在區塊鏈上,並希望使合約盡可能“苗條”/“輕”。因此,我什至只會從庫中複製我需要的程式碼函式(如果我使用所有函式,則只使用整個庫)。該介面僅用於檢查和調試…
您希望將邏輯分成多個契約/庫/等有兩個不同的原因。
1-模組化、易用性、易維護性。如果您放棄使用庫或從其他合約繼承,您的程式碼將成為一個包含數十個函式的巨大文件,難以維護、讀取、重用等。
2- 實現父/子合約更多地與您的程式碼邏輯有關。例如,對於一個投標應用程序,您可以有一個契約來儲存所有正在進行的投標及其相應數據(投標人、中標等),或者,您可以創建每個投標契約都擁有自己的邏輯,並且然後是一個父契約,它保留對創建的每個投標契約的引用。
每種方法都有自己的優點和缺點,這實際上取決於您的應用程序的要求。