[英]Swift: conforming to protocol using extension and composition pattern
在此PDF: 某些哥倫比亞大學的演示文稿的幻燈片62上,它說Swift和其擴展的背后思想之一是使用合成模式遵守協議。
現在我了解了Swift中擴展的語法
//example from Apple:
extension SomeType: SomeProtocol, AnotherProtocol {
// implementations of not yet provided functions and properties of SomeType go here
}
但是構圖模式與它有什么關系? 那家伙的意思是這里描述的復合模式,對吧? 有人可以提供一個最小的用法示例嗎?
Composition
是指在Swift中稱為“符合protocols
”的“實現”接口。
籬笆的另一側是Inheritance
,您可以在其中擴展類。
這里的主要問題是,您只能擴展一個類,但可以根據需要遵循盡可能多的接口(至少在Swift中)。 因此,如果您的類想成為UITableViewDelegate
和UITableViewDataSource
,則只能通過組合來實現。
接口/協議為開發人員提供了更多的開放空間,以反對您可以選擇哪些類。 協議僅定義函數和方法-並且在Swift屬性中定義自身具有某些類似於函數的功能。 另一方面,類可以包含變量,常量等。它們可以實現其中的一些-接口通常無法做到的事情。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.