我只是想知道除了委託以外的協議還有其他用法嗎?我只看到協議被用作代表,但我沒有注意到它是否有其他目的。那麼除了委託人以外,協議的實際目的是什麼?除委託之外還有其他協議用法嗎?
0
A
回答
1
從蘋果文檔:
協議聲明可以被任何類實現的方法。協議至少在三種情況下是有用的:
- 要聲明的是,其它公司有望實現
- 要將接口申報的對象,而隱藏其類
- 到未分級類中捕獲的相似方法相關的
作爲一個例子,我還特別使用了協議來實現提供者模型,在這個模型中我抽象出系統的完整部分。例如,爲了更多地分離我的代碼,我可以創建一個數據提供者。我可以有一個SQLite提供程序,文件提供程序等...協議允許我去耦這些。
在這種情況下,每個提供者不會彼此繼承,但它們都實現相同的模式,其內部結構不同。將協議想象成符合的模式 - 或者,如果您將協議看作接口,則可以使用協議。
希望有所幫助。
1
您可以在任何想要定義一組共享行爲而無需強制使用特定繼承樹的地方使用它。
相關問題
- 1. 除SDP外,還可以使用其他協議嗎?
- 2. 延伸。在協議規定的委託與其他協議
- 3. 打開和關閉其他UIViewControllers - 除了使用協議和委託以外的其他方法?
- 4. 委託協議/ IBOutlet
- 5. 協議及委託
- 6. 除了PIVOT之外,還有其他的方法嗎?
- 7. JavaBean除了getter和setter之外還有其他方法嗎?
- 8. 除了轉義引號之外,還有其他方法嗎?
- 9. 應用委託和協議
- 10. 協議委託沒有被調用
- 11. 除HTTP之外的其他常用協議?
- 12. 協議/委託不工作
- 13. NSNotification與委託協議?
- 14. 在協議中創建委託方法
- 15. 協議和委託不訪問方法
- 16. Swift 3協議和委託方法?
- 17. 除了Android SDK之外,還有其他的Android模擬器嗎?
- 18. Scala:除了scala之外,還有其他的嘗試嗎?
- 19. EOL == EOS除了BASIC之外還有其他語言嗎?
- 20. 除了Siphon之外,iPhone還有其他的SIP實現嗎?
- 21. 協議委託不工作有時
- 22. 類委託沒有實現協議
- 23. 無法找到協議聲明自定義協議委託iphone
- 24. 除文本中的SQL查詢外,是否還有其他內部MySQL協議?
- 25. 處理iOS Exceptions除了Crittercism之外還有其他方法
- 26. 除POST,PUT,DELETE,GET之外還有其他的HTTP方法
- 27. Swift 3.0委託協議不起作用
- 28. 協議委託不會調用函數
- 29. NSNotificationCenter vs委託(使用協議)?
- 30. 使用協議/委託另一類別
簡短回答:是的。 – Richard