使用类func,使用func和不使用类声明的好处
好的,所以我的项目中有很多辅助函数,而我最初在一个名为Animate的类中具有这些函数。我想知道声明func vc类func有什么好处。
让我们以此作为示例类:
class Animate{ func moveView(...){
...
}
}
因此,我相信如果我有一个类的功能,我不必照此实例化该类。
Animate.moveView(...)
如果我只是用func声明函数,它将是:
Animate().moveView(...)
但是,如果我根本不将文件声明为类:
func moveView(...){ ...
}
当我调用该函数时,它只是:
moveView(...)
没有指示代码来自何处,可以在项目中的任何地方这样使用它。
这三种方式的优缺点是什么?这不是宣告课堂不良做法吗?还是有一些非常有用的案例?例如,在我的情况下,我不需要类,因为我只是创建辅助函数而不是对象。
预先感谢您对此有任何见解!
回答:
好。实例方法vs类方法vs全局方法。
(术语“方法”和“功能”是可互换的。“方法”表示由对象实现的功能,因此,我倾向于将术语“方法”比术语“功能”更喜欢。)
实例方法是由类的实例执行的方法。您必须具有要与之交谈的该类的实例才能调用实例方法。
实例方法可以访问它们所属对象的实例变量,因此该对象可以保存两次调用之间的状态信息。(在网络课程中,您可以创建多个下载对象,每个下载对象管理来自不同URL的不同文件的单个文件下载,并且每个对象可能都有不同的委托,当下载完成时会通知该委托)
类方法由类本身而不是实例调用。这可以使调用辅助函数变得简单,而无需管理对象即可为您完成该工作。由于类方法不与该类的实例通信,因此它们无法为每个对象保留不同的状态信息。例如,您可能有一个实用程序类,该类对字符串执行本地化功能。本地化过程是独立的。您调用一个类函数,并传入一个字符串和您要使其本地化的语言,然后将结果交给您。无需在调用之间保持状态。这样的通话可能看起来像
let frenchString = LocalizationUtils.localizeString("English String",
toLanguage: "French")
全局函数不属于任何特定的类。它们对于定义它们的整个模块是全局的。它们与类函数相似,除了它们不特定于特定类。
以上是 使用类func,使用func和不使用类声明的好处 的全部内容, 来源链接: utcz.com/qa/402629.html