[英]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.