我只是想知道除了代表之外还有协议的其他用法吗?我只看到协议被用作代表,但我没有注意到它是否有任何其他目的。那么除了代表之外,协议的实际目的是什么?
答案 0 :(得分:1)
您可以在任何想要定义一组共享行为的地方使用它,而不会强制使用特定的继承树。
答案 1 :(得分:1)
来自apple docs:
协议声明可以由任何类实现的方法。协议在至少三种情况下都很有用:
具体来说,作为一个例子,我还使用协议来实现提供者模型,在那里我抽象出系统的完整部分。例如,为了更多地解耦我的代码,我可以创建一个数据提供者。我可以有一个sqlite提供者,一个文件提供者等......一个协议允许我解耦这些。
在这种情况下,每个提供程序不会相互继承,但它们都实现了相同的模式,内部结构不同。将协议视为您遵守的模式 - 或者,如果您将其视为接口,则为合同。
希望有所帮助。