三、代理模式

2017-06-20  本文已影响0人  LeeLeCoder

1. 何为代理模式

代理模式:为另一个对象提供一个替身或占位符以控制对这个对象的访问。

首先说一下什么是“代理”吧,其实代理很好理解,你就把“代理”看成是二道贩子,说的好听点叫代理商。就是你买个东西,不从生产地直接买,而是通过二道贩子,三道贩子来进行购买,这些商贩就是代理商,也就是我们今天所说的代理。说的具体点,比如你要买棵萝卜,那么一般人不会去找菜农,然后给他们钱直接去地里薅萝卜。大部分人是通过商超来获取萝卜,这些商超就是所谓的萝卜代理商,也就是二道贩子。

2. 情景设置

3. 代码实现

3.1 OC代码演示

3.2 Swift代码演示

代理在Swift中也算是比较常用了,虽然闭包也就是block的更简便运用,但是代理的作用依然无法被完全取代,其实这也完全取决于开发者的习惯。

下面通过代码演示代理的使用步骤:

The first step: define a protocol

不写NSObjectProtocol暂时不会报错,但是写属性是无法写weak

protocol myDelegate {
    // 代理方法
    func myAction(result: Int)
}
The second step: Declare an agent property
weak var delegate: myProtocol?
The third step: abide by the myProtocol
class B: myDelegate
The fourth step: set A instance's delefate
a.delegate = self
The fifth step: implement delegate method
func myAction(result: Int) {
        print(#function)
}
The sixth step: call delegate method
self.delegate?.myAction(result: 1)
上一篇 下一篇

猜你喜欢

热点阅读