美文网首页iOS Developer
对iOS的代理做一个潜入的理解

对iOS的代理做一个潜入的理解

作者: 阿汤8阿义 | 来源:发表于2016-04-10 11:24 被阅读93次

在这里我们要走出一个误区,就是代理不是像kvo或kvc一样,代理是一种设计模式它的核心是<协议>。

那它的核心是协议,那么我们下一步就来讲讲协议。

protocol(协议),protocol类似java中的interface,主要是用来定义一套对象之间的通信规则。protocol也是我们设计时常用的一个东西,相对于直接继承的方式,protocol则偏向于组合模式。也可以理解为protocol就是一系列不属于任何类的方法的列表(这句话很重要)。这里还有两个关键字,@required和@optional,一个是必须实现的,一个是可选的。可以根据名字直接判断。

明白了协议概念那么我们下面就通过讲解在oc中怎么使用协议来充分理解这种设计模式。

首先,我们为什么要在.h去创建一个协议呢,这是因为.h里面的东西都是公有的,只要你在头里引入了这个类你就能拿到。这就对应为我们的两个类搭建了一个桥路。如下图:

那创建个完了我们是不是就该考虑这里的协议让谁来用呢,还要考虑的是能做到隔山发命令,我这边能收到命令。

首先第一步是解决让谁来用的问题,让别人来用首先就要让别人拿到协议,所以我就要把这个协议给暴露出去。oc在这里的处理就很巧妙通过一个申明一个属性一样的形式将协议变成属性的类名,这样外面就可以拿到协议了,而且还解决了让协议给谁用的问题。就是在外面通过点语法引入使用对象这样就锁定了使用者。如图将协议创建成属性:

引入协议:

确定协议的使用权:

使用协议里的方法:

相关文章

  • 对iOS的代理做一个潜入的理解

    在这里我们要走出一个误区,就是代理不是像kvo或kvc一样,代理是一种设计模式它的核心是<协议>。 那它的核心是协...

  • IOS开发之协议和代理

    【iOS开发技术分享】协议与代理 【iOS开发技术分享】协议与代理 一、理解协议与代理 协议: 协议是一个方法签名...

  • 对动态代理的理解

    上一篇: 对静态代理的理解接上一篇,学习了静态代理后再来看看动态代理的机制。在上一篇博客中,我们使用静态代理实现了...

  • 对静态代理的理解

    假如有一个使用账号密码登录功能,我们写这样一个类: 现在想在登录之前和之后分别想打点上报,但是打点上报却不属于登录...

  • iOS代理模式的使用,委托(delegate)

    在iOS开发中代理是非常常见和普遍的,代理是一种通用的设计模式,iOS中对代理支持的很好,由代理对象、委托者、协议...

  • iOS 什么是代理

    前言:在我学习iOS的时候,代理是我的痛点,不管怎么理解都是无法理解代理是什么东西。直到一个月的不断摸索才知道代理...

  • 代理模式

    代理模式(proxy):为其他对象提供一种代理以控制对这个对象的访问。 代理种类:保护代理、动态代理【iOS没有】...

  • iOS代理Delegate理解

    本文来源:www.jianshu.com/p/67293140c570 相信提起代理(delegate),无论你是...

  • iOS之代理模式的理解

    标签:ios 代理 模式 协议 delegate 阅读前的知识储备请确保在阅读本文时,曾经不止一次亲自动手...

  • iOS关于代理模式的理解

    代理模式是一种消息传递模式 包括:协议、委托对象、代理对象 协议:用来指定代理双方需要做的事情 委托对象:根据协议...

网友评论

    本文标题:对iOS的代理做一个潜入的理解

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