[英]Class extension vs. subclassing in Swift?
我使用的是第三方框架,它提供了一個實例只有屬性的類。 在我的應用程序中,我想為這個實例添加一個額外的屬性。 適用於這種情況的適當方法是什么?
a)在我的應用程序中擴展框架的類
b)創建框架類的子類並定義我需要的新屬性
提前致謝
它的
b)
因為不支持在類擴展中添加(存儲)屬性。
使用擴展有兩個重要規則:
擴展可以為類型添加新功能,但它們不能覆蓋現有功能
擴展可以添加新的計算屬性,但不能添加存儲的屬性,也不能將屬性觀察者添加到現有屬性
這取決於您期望實現的行為。
擴展:您只能添加新方法和計算變量 ,但您將在代碼中實現無縫工作。 無需在代碼中添加新類即可在任何地方使用新功能
子類:您可以添加新變量和覆蓋函數,但代碼中的占用空間更大。 您需要在整個項目中使用該特定子類。
我想這更像是一個設計問題。
我的建議:如果整個項目需要這個新行為,請使用擴展 ,否則使用子類 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.