小糊塗我碰到這個例子在這裏斯威夫特:爲什麼協議是有用的在這種情況下
protocol Barker {
func bark()
}
class GermanShephard: Barker {
func bark() {
print("Bark")
}
}
class BelgianMalinois: Barker {
func bark() {
print("Bark!")
}
}
let dog = BelgianMalinois()
dog.bark()
我知道它是如何工作的。但是,我不知道這樣做的好處。您可以刪除協議並仍然得到相同的結果。任何解釋都會有用。我知道使用協議的委託對於從一個對象向另一個對象發送消息很有用。這很有用,因爲任何對象都可以繼承委託。所以像UITableView這樣的庫不必引用你的對象來發送消息給它。
謝謝,這是有道理的。由於該方法具有參數類型Barker,因此可以採用符合協議的任何對象。或者,如果您創建了類型剝皮器,則可以爲它分配一個符合協議的對象。更有意義,看起來更有用。 –