代表团
佩基,代表尼迪尔?
“代表,贝利里·比尔·奥莱·奥尔杜恩·unda·比尔·内斯宁宁·巴斯卡·比尔·内斯尼·哈伯·贡德梅西内·奥拉纳克·坦尼扬·比尔设计模式’dır’。”
Bir A nesnesini hayal edin。 Bir eylemigerçekleştirmekiçinB nesnesiniçağırır。 Eylemtamamlandığında,一个nesnesi B’ningörevitamamladığınıve gerekli eylemigerçekleştirdiğinibilmelidir。 BuişlemRepresentative’lerin院子里的孩子!
Sizlere buolayıbirörnekleaçıklayayım:
2yaşınızdaolduğunuzuhayal爱丁。 Yemek yemeyi buyaştabilemezsiniz,buyüzdenannenizinyardımınaihtiyacınızvardır。
Yemek yapabilen bir anne Annoluşturmadanönce,Anneninnasılyemekpişirileceğinibilmesi gerekiyor。
协议YemekPisirme {
func yemekYemek()
}
Şimdi,“ YemekPisirme”protokolüneuyan bir anneyapısıoluşturalım:
struct Anne:YemekPisirme {
func yemekYemek(){
//Protokolümüzdekifonksiyonumuzayazıekledik。
打印(“ Pizza geliyor !!”)
}
}
我的名字是:安妮·内西内西(Omşturalım):
// Anne NesnesiniOluşturma
var anne = Anne()// Anneyapısınıtaşıyanannedeğişkeninioluşturduk
anne.yemekYemek()//“披萨吉利耶!”
Şimdi,2岁的yaşındabir bebekoluşturmavakti。 Ama onun birisininyardımınaihtiyacıvar,buyüzdenonun yerine yemekpişirebilecekbiryetişkin代表)ekleyeceğiz。
// Bebekyapısıoluşturma
struct Bebek {
var代表:YemekPisirme? //代表=özelyetenekleri olan birisi
}
Şimdi,gerçekbir bebek nesnesioluşturalım和委内瑞拉Ann olarakatayalım。
// Bebek nesnesioluşturma
var babe = Bebek()
babe.delegate =安妮
Temsilci(delegate)özelliğinintürü“ YemekPisirme”目录。 “ Anne” tipi“ YemekPisirme”protokolüneuygunolduğundan下摆“ YemekPisirme”下摆de“ Anne” olabilir。
Şimdi,bebeğimizyemeğiniyiyebilir:
babe.delegate?.yemekYemek()//“披萨饼Geliyor!”
Bebek yemekyapmayıbilmiyor。 安卡克,肯迪斯·伊梅克·耶帕比勒克·伊斯特拉格·奥拉拉克·贝尔代表ekledi。 达哈·桑德拉·布·代罗伊(Kendisinden),《肯尼迪·斯坦》。
Basit mi? 埃维特·奥伊尔 Bukavramıaçıklayanbirçok博客okudum vebunlarınçoğuçokkarmaşıkanlatıyordu。 İyibir makaleyazdığımıdüşünüyorsanızbunu yorumlarbölümündebelirtebilirsiniz。 Umarımbuyazımıpaylaşmayadeğerbulmuşsunuzdur。
Örnekdosyayıhttps://github.com/erdemozgur/delegation adresinden indirebilirsiniz。