我使用第三方框架提供了一个实例只有属性的类。在我的应用程序中,我想为此实例添加一个额外的属性。这种情况下适当的方法是什么?Swift中的类扩展与子类化?
一)在我的应用程序
B)创建框架的类的子类,定义了新的属性,我需要提前
感谢扩展框架的类
我使用第三方框架提供了一个实例只有属性的类。在我的应用程序中,我想为此实例添加一个额外的属性。这种情况下适当的方法是什么?Swift中的类扩展与子类化?
一)在我的应用程序
B)创建框架的类的子类,定义了新的属性,我需要提前
感谢扩展框架的类
这是
b)
因为在类扩展中添加(存储)属性不是 支持的。
有使用扩展两个重要的规则:
扩展可以添加新的功能,以一个类型,但它们不能覆盖现有的功能
扩展可以添加新的计算性能,但他们无法添加存储的属性,或将属性观察者添加到现有属性中
这取决于您期望达到的行为。
扩展:可以只添加新方法和计算瓦尔,但你会实现你的代码无缝工作。新的功能没有在你的代码中添加新的类
子类的任何地方:您可以添加新瓦尔和覆盖功能但代码中的更大的足迹。您需要在整个项目中使用该特定的子类。
我想这是更多的设计问题。
我的建议:如果整个项目需要这种新的行为使用扩展,否则子。
谢谢你的回答 – AppsDev
我认为最后一点经常被忽视。扩展是全局性的,因此它们会影响可能不想要复杂性的代码部分。出于这个原因,我认为他们应该避免在这种情况下。 – LegendLength