为什么我们使用接口而不是协议?

时间:2013-04-12 12:25:21

标签: objective-c

我认为,除了名称之外,协议更适合作为"接口"课间。他们完成@interface所做的所有事情(暴露属性和方法),并且在不同的类之上可以实现相同的协议,这与Objective-C的动态特性相结合是一个巨大的优势。那么为什么我们仍然使用@interface s?与协议相比,它们带来了哪些优势? (我希望从这个问题中得到更多的信息而不是"他们明确表达了他们所做的事情"或者"关闭而不是建设性的"。)

1 个答案:

答案 0 :(得分:0)

委托协议需要定义为

@protocol 
//methods
@end

它可以放在任何.h类中,只要你打算使用它就需要导入它。

协议不像java接口,协议是允许两个类一起工作的适配器。基本上它说,如果你希望A类向你发送有关其状态和动作的消息,这些是它将调用它必须实现的委托的方法。它不像一个接口,因为一个接口说如果你想要继承这个类,你必须实现这些方法,协议说如果你想与这个类进行交互,你必须实现这些方法,所以它有些不同。

Objective C interfaces, delegates, and protocols