代表团

佩基,代表尼迪尔?

“代表,贝利里·比尔·奥莱·奥尔杜恩·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。