2013-04-12 82 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

相關問題