2013-04-12 57 views
0

我认为,除了名称之外,协议更适合用作类之间的“接口”。它们完成所有的工作(公开属性和方法),并且除了Objective-C的动态特性以外,不同的类可以实现相同的协议,这是一个巨大的优势。那么为什么我们仍然使用@interface?与协议相比,它们带来了什么优势? (我希望能获得更多的这个问题不是“他们是在他们做什么明确的”或“封闭,没有建设性”。)为什么我们使用接口而不是协议?

+0

你问OO类和接口(其中的OBJ-C调用接口和协议)之间的差异。这是一个非常基本的面向对象原则问题。 –

+0

您可能会在http://programmers.stackexchange.com而不是这里找到您正在寻找的讨论。 –

+0

@MikeWeller如果你认为这是重复的,你没有阅读我的问题。类==界面如何? – Meda

回答

0

委托协议需要被定义为这样的

@protocol 
//methods 
@end 

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

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

Objective C interfaces, delegates, and protocols

+1

I不明白你为什么将协议链接到代表。认为更大(多态)。 – Meda

相关问题