1、Swift入门学习笔记(第一版),对Swift的基础知识点进行梳理总结。知识点一直在变,只是作为参考,以苹果官方文档为准~
2、在学习完基本的知识点以后会结合官方文档及相关资料,在此版本的基础上进行添加更改。
二十二、协议(2)
前半部分地址:文章链接
6、委托(代理)模式
一种设计模式,允许类或结构体将一些功能委托给其他的类型的实例。
实现方法:定义封装需要被委托的方法和函数,使其遵循者拥有这些被委托的函数的方法
委托模式可以用来响应特定的动作或接受外部数据源提供的数据,无需知道外部数据源的类型信息
实际上说白点本来可以自己实现,自己不实现定义一个delegate
属性委托给其他类实现,其他类遵循协议实现这些方法
protocol GameDelegate {
func gameStart()
func gameEnd()
}
class Game {
//遵循delegate,但是是可选属性
var delegate:GameDelegate?
func startPlay() {
delegate?.gameStart()
}
func endPlay() {
delegate?.gameEnd()
}
}
//游戏跟踪类,实现delegate的三个协议。Game委托给该类实现
class GameTracker:GameDelegate {
func gameStart() {
print("Game Start")
}
func gameEnd() {
print("Game End")
}
}
let tracker = GameTracker()
let game = Game()
game.delegate = tracker
game.startPlay()
game.endPlay()
Output:
Game Start
Game End