繁体   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