簡體   English   中英

Swift:使用擴展和合成模式符合協議

[英]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中)。 因此,如果您的類想成為UITableViewDelegateUITableViewDataSource ,則只能通過組合來實現。

接口/協議為開發人員提供了更多的開放空間,以反對您可以選擇哪些類。 協議僅定義函數和方法-並且在Swift屬性中定義自身具有某些類似於函數的功能。 另一方面,類可以包含變量,常量等。它們可以實現其中的一些-接口通常無法做到的事情。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM