delegate

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
delegate [2023/09/19 06:59]
oresh.dm создано
delegate [2023/09/19 07:20] (текущий)
oresh.dm
Строка 1: Строка 1:
 +**Делегат** - состоит из: 
 +
 +// **Делегатор** - тот кто ставит задачу. //
 +
 +//**Тип делегата** - протокол. какими свойствами и методами должен обладать делегат. // 
 +
 +//**Делегат** - тот кто исполняет задачу. //
 +
 +
 +
   protocol CoffeMakerDelegate {   protocol CoffeMakerDelegate {
   func makeCoffe(amount: Int) -> Int   func makeCoffe(amount: Int) -> Int
Строка 5: Строка 15:
   class Client {   class Client {
   var name = "name"   var name = "name"
-  var cofeMaker: CoffeMakerDelegate +  var cofeMaker: CoffeMakerDelegate?  /- НАШ ДЕЛЕГАТ 
 +   
 +  func visitCoffeHouse(cofeMaker: CoffeMakerDelegate) { 
 +  self.cofeMaker = cofeMaker 
 +  } 
 +  func goOutCoffeHouse () { 
 +  self.cofeMaker  = nil 
 +  } 
 +   
 +  func buyCoffe(amount: Int) { 
 +  guard let delegate = cofeMaker  else { 
 +  print("Vi ne v cofeyne!"
 +  }  
 +  delegate.makeCoffe(amount: amount) 
 +  }
   }   }
  
Строка 14: Строка 38:
   return count    return count 
   }   }
-}+  } 
 +   
 +  let officiant = Officiant() 
 +   
 +  let client = Client() 
 +   
 +  client.visitCoffeHouse(cofeMaker : officiant) 
 +  client.buyCoffe(amount: 2000) 
 +   
 +   
 +   
 +  
  • /sites/data/attic/delegate.1695106788.txt.gz
  • Последнее изменение: 2023/09/19 06:59
  • oresh.dm