美文网首页
关于代理与通知的内部实现原理与区别对比

关于代理与通知的内部实现原理与区别对比

作者: Horson19 | 来源:发表于2018-09-14 11:30 被阅读14次

代理:是软件设计模式的一种(也可以说是用代理的设计模式实现的消息传递机制),以@protocol的形式体现,以一对一的方式传递信息。

代理是以协议的方式连接委托方与代理方的,委托方通过代理定义需要实现的方法与选择实现的方法,由代理方实现,再由委托方调用代理方所实现的协议方法来实现代理的设计模式。

通知:是一种使用观察者模式实现的跨层的消息传递机制,而通知的传递方式为一对多

一般我们的项目中几个最基本的层为:网络层,数据层,业务层与UI展示层,一般情况从网络层获取了数据都会由数据层接收,业务层处理,最终由UI层负责展示。而开发过程中有些情况会需要直接由网络层发送消息至UI展示层,这时候使用通知就是很好的一种实现方法了。

关于通知的工作流程大概为:消息放松->通知中心->观察者1,2,3……

由于通知内部是闭源的,看不到其实现原理,通过查阅资料以及网上部分代码的阅读,可以大致梳理一下通知的实现流程:

所有的通知都会放在一个角Notification Map的映射表里,表中以通知名称Name为key,通知的众多观察者Observers List为value存储,Observers List是存储众多观察者的一个数组。当一个通知消息到来,系统会在Notification Map表中查找到对应的通知Name,再给其众多观察者发送消息,从而达到一个通知的目的

本文由作者原创,未经允许不得转载

相关文章

  • 关于代理与通知的内部实现原理与区别对比

    代理:是软件设计模式的一种(也可以说是用代理的设计模式实现的消息传递机制),以@protocol的形式体现,以一对...

  • 动态代理

    目录: 1.动态代理与静态代理的使用区别2.动态代理实现原理3.动态代理的使用场景 1.静态代理 代理模式给某一个...

  • (转)HashMap底层实现原理/HashMap与HashTab

    HashMap底层实现原理/HashMap与HashTable区别/HashMap与HashSet区别 ①Hash...

  • iOS TextFiled,TextView 长度限制,表情限制

    需求:在文本框中限制输入表情,长度限制 实现原理: 通过这两个控件的代理与通知实现 阅读前提: 由于搜狗等不断改善...

  • 代理

    来源:java动态代理实现与原理详细分析 代理模式是常用的java设计模式,他的特征是代理类与委托类实现同样的接口...

  • 芷大神给我总结的技术点

    数据结构基础 ArrayList 与 LinkedList 区别 HashMap 的实现原理 HashMap 与 ...

  • RTOS基础(事件控制块实现)

    时间控制块的原理与创建 问题概述 解决方案 事件控制块原理 设计实现 事件的等待与通知 概述 设计原理 设计实现 ...

  • RTOS(事件标志组)

    事件标志组的原理与创建 问题概述 设计原理 设计实现 事件标志组的等待与通知 设计需求 设计原理 设计实现 事件标...

  • Spring_AOP_02——实现原理

    本文主要讲实现AOP的 代理模式原理,以及静态代理,动态代理的区别和具体实现。 对SpringAOP的概念和使用,...

  • AOP——cglib动态代理源码解析

    上一篇分析了使用JDK动态代理的低层实现原理,这次再来看看cglib实现动态代理的原理。 关于JDK动态代理的实现...

网友评论

      本文标题:关于代理与通知的内部实现原理与区别对比

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