【发布时间】:2018-02-25 12:11:38
【问题描述】:
拥有这个从不直接使用的类,只继承:
class ApiBase {}
如何在这里定义一个通用的静态单例default? - 所以我可以:
class FooApi: ApiBase {} // Want only one instance of `FooApi`
class BarApi: ApiBase {} // Want only one instance of `BarApi`
FooApi.default.foo_api_only_method_name()
BarApi.default.bar_api_only_method_name()
我唯一能想到的就是创建一个protocol,FooApi 和BarApi 需要实现。但这似乎不是最理想的,宁愿写一个像这样的实现:
func `default`<T: ApiBase>() -> T {
if staticInstance == nil {
staticInstance = T()
}
return staticInstance
}
【问题讨论】:
标签: swift inheritance singleton swift4 swift-class