Swift:使用扩展和组合模式符合协议

时间:2015-12-26 15:22:36

标签: swift design-patterns protocols composition composite

在本PDF幻灯片62中:Some Columbia College Presentation它说Swift及其扩展背后的一个想法是使用合成模式符合协议。

现在我理解Swift中扩展的语法

//example from Apple:
extension SomeType: SomeProtocol, AnotherProtocol {
// implementations of not yet provided functions and properties of SomeType go here
}

但是构图模式与它有什么关系呢?那家伙确实意味着描述here复合模式,对吗?有人可以提供一个最小的例子吗?

1 个答案:

答案 0 :(得分:2)

Composition指的是"实施"接口,在Swift中称为符合protocols

在栅栏的另一侧是Inheritance,您可以在其中扩展类。

这里的主要问题是你只能扩展一个类,但要符合你想要的任意数量的接口(至少在Swift中)。因此,如果您的班级想要成为UITableViewDelegateUITableViewDataSource,那么您只能通过撰写来实现这一目标。

接口/协议为开发人员提供了更多的开放性,反对你可以使用哪些类。协议只有定义函数和方法 - 以及Swift属性,它们本身具有一些类似函数的功能。另一方面,类可以包含变量,常量等。并且它们已经可以实现其中的一些 - 接口主要是不能做的。