В настоящее время я пытаюсь понять шаблон делегирования, и мне было интересно, является ли этот шаблон конкретным языком, другими словами, нужен ли какой-либо язык для поддержки какого-либо языка Protocols
, Interfaces
и т. Д. Для того, чтобы этот шаблон работал, или он может быть реализован на любом языке?Может ли делегирование быть реализовано на любом языке или оно зависит от языка
Swift Пример:
protocol SendersMessageDelegate{
func shareMessage(message: String)
}
class Sender{
var sendersMessage: String = String()
var delegate: SendersMessageDelegate?
func sendMessage(sendersMessage: String) {
self.sendersMessage = sendersMessage
delegate?.shareMessage(sendersMessage)
}
}
class Receiver: SendersMessageDelegate{
var savedMessage:String?
func shareMessage(message: String) {
savedMessage = message
print(message)
}
}
var sender = Sender()
var receiver = Receiver()
sender.delegate = receiver
sender.sendMessage("Hello Receiver"
)
Как трудно было бы для вас, чтобы преобразовать мой пример кода, чтобы не использовать протоколы? –
Ваша основная проблема будет убедить компилятор быть счастливым. Используя основы obj-c, так реагирует на селектор и селектор, что упрощает работу. В чистом быстром действии лучше всего использовать протоколы, и вы не должны действительно хотеть другого подхода ... – Wain
Хм, так что, если я правильно понимаю, что «Делегирование» может быть выполнено на любом языке, но каждый «язык/компилятор» имеет его уникальный способ сделать это, это правильно (конечно, помимо разницы в синтаксисе) ?. –