Swift(二十二、协议(2))


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

7、扩展与协议

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值