在开发过程中,我们经常会遇到需要定义一些静态方法的需求。通常我们会想到用 class
和 struct
去定义,然而却忽略了 enum
也可以拥有静态方法。那么问题来了:既然三者都可以定义静态方法,那么我们应该如何选择?
下面直接给出答案:
-
class:
class
是引用类型,支持继承。如果你需要这两个特性,那么选择class
。 -
struct:
struct
是值类型,不支持继承。如果你需要值类型,并且某些时候需要这个类型的实例,那么用struct
。 -
enum:
enum
也是值类型,一般用来定义一组相关的值。如果我们想要的静态方法是一系列的工具,不需要任何的实例化和继承,那么用enum
最合适。例如,在 Swift 5.0 版本的 Alamofilre 的 Alamofire.swift 文件中,就是用enum
来定义了各类请求方法。
另外,其实这个规则也适用于静态变量。
完
想及时看到我的新文章的,可以关注我。同时也欢迎加入我管理的Swift开发群:536353151
。
网友评论