[英]Designated Initializer Class for a Protocol
我想將協議名稱用作初始化程序。 像這樣:
protocol Foo { ... }
protocol Bar : Foo { ... }
class FooImpl : Foo { ... }
分配給foo
時, let foo = Foo()
將FooImpl()
。 有沒有一種方法可以為協議指定“指定的初始化程序類”?
另一個選擇可能是:
class Foo {
class FooImpl { ... }
init () {
// somehow create a FooImpl
}
}
以上可能嗎? 但是,不確定第二種情況是否可行,因為除非在Foo
中實現屬性,否則無法在Foo
聲明屬性。
我會在這里使用工廠模式:
class FooFactory {
class func createFoo -> Foo {
return FooImpl()
}
}
...
let foo = FooFactory.createFoo()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.