iOS面试题:介绍一下观察者模式

作者: iOS猿_员 | 来源:发表于2019-02-13 15:10 被阅读498次

原文:iOS面试题大全

观察者模式(Observer Pattern):定义对象间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新。
在IOS中典型的推模型实现方式为NSNotificationCenter和KVO。

NSNotificationCenter

  1. 观察者Observer,通过NSNotificationCenter的addObserver:selector:name:object接口来注册对某一类型通知感兴趣。在注册时候一定要注意,NSNotificationCenter不会对观察者进行引用计数+1的操作,我们在程序中释放观察者的时候,一定要去报从center中将其注销了。
  2. 通知中心NSNotificationCenter,通知的枢纽。
  3. 被观察的对象,通过postNotificationName:object:userInfo:发送某一类型通知,广播改变。
  4. 通知对象NSNotification,当有通知来的时候,Center会调用观察者注册的接口来广播通知,同时传递存储着更改内容的NSNotification对象。

KVO

KVO的全称是Key-Value Observer,即键值观察。是一种没有中心枢纽的观察者模式的实现方式。一个主题对象管理所有依赖于它的观察者对象,并且在自身状态发生改变的时候主动通知观察者对象。

  1. 注册观察者
    [object addObserver:self forKeyPath:property options:NSKeyValueObservingOptionNew context:]。
  2. 更改主题对象属性的值,即触发发送更改的通知。
  3. 在制定的回调函数中,处理收到的更改通知。
  4. 注销观察者 [object removeObserver:self forKeyPath:property]。

原作者:故胤道长

相关文章

  • 常用设计模式整理

    ios面试题(整理) ios常用的设计模式有哪些? MVC模式、委托模式、观察者模式(kvo、kvc、通知机制)、...

  • iOS底层原理 - 设计模式与架构

    面试题引发的思考: Q: 用过哪些设计模式? iOS中主要使用单例模式、代理模式、观察者模式(通知、KVO)。 Q...

  • iOS面试题13-其他

    《2018 iOS面试题系列》 1.常用的设计模式 单例模式组合模式观察者模式代理模式享元模式工厂方法模式抽象工厂...

  • iOS中的观察者模式

    有人问iOS观察者模式是什么,并介绍一下,然后回答的人张嘴就来NSNotificationCenter怎么使用,然...

  • iOS-9 观察者模式

    有人问iOS观察者模式是什么,并介绍一下,然后回答的人张嘴就来NSNotificationCenter怎么使用,然...

  • iOS面试题:介绍一下观察者模式

    原文:iOS面试题大全 观察者模式(Observer Pattern):定义对象间的一种一对多依赖关系,使得每当一...

  • Swift Combine 入门导读

    在具体介绍 Combine 之前,有两个重要的概念需要简要介绍一下: 观察者模式 响应式编程 观察者模式 观察者模...

  • iOS 趣谈设计模式——通知

    【前言介绍】 iOS的一种设计模式,观察者Observer模式(也叫发布/订阅,即Publich/Subscrib...

  • KVO与KVC

    KVO与KVC是观察者模式在iOS中的一种实现 KVO 一、KVO的介绍 KVO就是观察者模式,说白了就是你关心的...

  • 观察者模式

    一、观察者模式介绍 二、观察者模式代码实例

网友评论

    本文标题:iOS面试题:介绍一下观察者模式

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