美文网首页
三、代理模式

三、代理模式

作者: LeeLeCoder | 来源:发表于2017-06-20 15:14 被阅读0次

1. 何为代理模式

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

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

2. 情景设置

3. 代码实现

3.1 OC代码演示

3.2 Swift代码演示

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

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

The first step: define a protocol
  • 在Swift中,制定协议需要遵守NSObjectProtocol协议,除了类可以遵守协议,结构体也可以遵守协议

  • 在OC中我们制定协议,通常继承自NSObject,可以这样理解,所有继承自NSObject的对象都可以实现协议方法(同样我们也可以指定哪些对象可以实现我们制定的协议方法)

不写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
  • '?'代替了responsed
self.delegate?.myAction(result: 1)

相关文章

  • 第4章 结构型模式-代理模式

    一、代理模式简介 二、代理模式3个角色 三、代理模式的优点 四、代理模式的实例(游戏代练)

  • JAVA代理模式深入了解(一)

    目前学习阶段,有问题请帮忙指出,谢谢 代理模式有三种: 静态代理模式 jdk动态代理模式 cglib动态代理模式 ...

  • Java代理模式整理

    代理模式 静态代理 给对象提供代理对象,由代理对象控制对原对象的引用。代理模式如【中介】 目的 三个角色 动态代理...

  • Spring学习day-63:代理模式和AOP

    一、Spring代理模式 1.什么是代理模式? 为其他对象提供一种代理以控制对这个对象的访问;代理模式的三要素:(...

  • Java的三种代理模式详解

    Java的三种代理模式 1.代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理...

  • 代理模式 java

    代理模式: 为其他对象提供一种代理以控制对这个对象的访问。代理模式主要有静态代理,动态代理,Cglib代理三种; ...

  • 微商有那些模式,你合适那种?

    其实微商的模式是多样化的,有代理囤货模式,一件代发模式,一级代理模式,微信直销模式,传统代理模式,微店模式,三级分...

  • Android学习笔记——代理模式到动态代理

    标签: Android 代理模式 在代理模式中一般有三个成员:服务接口,被代理对象(提供实际服务功能),代理对象(...

  • 设计模式之代理

    设计模式之代理模式 一、定义 在Java中代理的实现一般分为三种:JDK静态代理、JDK动态代理以及CGLIB动态...

  • 三、代理模式

    代理模式的定义:代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。通俗的来讲代理模式就是我们生...

网友评论

      本文标题:三、代理模式

      本文链接:https://www.haomeiwen.com/subject/wiwqzttx.html