我想知道您是否能在Swift中创建类似C#中的静态类,即不能实例化只能具有静态函数和静态属性的类。这种类型的类在Swift中是否可能?
如果不行,那么在Swift中再现此设计模式的最有效方法是什么?请使用可用的工具。
如果不行,那么在Swift中再现此设计模式的最有效方法是什么?请使用可用的工具。
final
,这样它就不能被继承:final class MyClass { .... }
2.使用struct
,它没有继承:struct MyUtilities { ... }
private init()
以防止初始化。或者只需使用 enum
。 - BallpointBen是的,这是可能的。您只需要将您的类定义为 final
并将构造函数设置为 private
,例如:
final class Test {
private init() {
}
static func hello() {
print("hello")
}
}
Test.hello()
static/class
关键字来获得相同的功能。使用 final
关键字可以确保你的类不能被子类化,如果你使用 final,则静态方法不再有意义,因为它们无法被覆盖。class Bar{
private init(){}
static let x = 10
class func methodA(){
//do something
}
static func methodB(){
// do something else
}
}
Never
类型的,该类型无法实例化。 - Hamish