Swift是否支持静态类?

J.b*_*nie 2 static-classes swift

我想知道你是否可以在swift中创建类似于C#中的静态类,即一个无法实例化的类,它只能有静态函数和静态属性.这些类型的课程是否可以迅速实现?

如果没有,考虑到Swift中可用的工具,重建这种设计模式的最有效方法是什么?

Cod*_*ent 5

不,Swift没有静态类的概念。但是,如果您仍然没有可分配的属性,初始化将产生什么不同?我可以想到2种选择:

  • 将类标记为,final这样它就不能被继承:final class MyClass { .... }

  • 使用struct没有继承的:struct MyUtilities { ... }

  • 添加`private init()`也可以防止初始化。或者只是使用一个“枚举”。 (2认同)

Jen*_*der 5

是的,这是可能的.你只需要将你的类定义为final构造函数private,例如

final class Test {
   private init() {

   }

   static func hello() {
      print("hello")
   }
 }

 Test.hello()
Run Code Online (Sandbox Code Playgroud)

  • 不,你不能继承这个类.关键字`final`可以防止子类化. (3认同)