我使用第三方框架提供了一個實例只有屬性的類。在我的應用程序中,我想爲此實例添加一個額外的屬性。這種情況下適當的方法是什麼?Swift中的類擴展與子類化?
一)在我的應用程序
B)創建框架的類的子類,定義了新的屬性,我需要提前
感謝擴展框架的類
我使用第三方框架提供了一個實例只有屬性的類。在我的應用程序中,我想爲此實例添加一個額外的屬性。這種情況下適當的方法是什麼?Swift中的類擴展與子類化?
一)在我的應用程序
B)創建框架的類的子類,定義了新的屬性,我需要提前
感謝擴展框架的類
這是
b)
因爲在類擴展中添加(存儲)屬性不是 支持的。
有使用擴展兩個重要的規則:
擴展可以添加新的功能,以一個類型,但它們不能覆蓋現有的功能
擴展可以添加新的計算性能,但他們無法添加存儲的屬性,或將屬性觀察者添加到現有屬性中
這取決於您期望達到的行爲。
擴展:可以只添加新方法和計算瓦爾,但你會實現你的代碼無縫工作。新的功能沒有在你的代碼中添加新的類
子類的任何地方:您可以添加新瓦爾和覆蓋功能但代碼中的更大的足跡。您需要在整個項目中使用該特定的子類。
我想這是更多的設計問題。
我的建議:如果整個項目需要這種新的行爲使用擴展,否則子。
謝謝你的回答 – AppsDev
我認爲最後一點經常被忽視。擴展是全局性的,因此它們會影響可能不想要複雜性的代碼部分。出於這個原因,我認爲他們應該避免在這種情況下。 – LegendLength