iOS设计模式-观察者模式

2019-10-28  本文已影响0人  渡口丶

一、定义

观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它所有的依赖者都会收到通知并自动更新。
观察者提供了一种对象设计,让主题和观察者之间松耦合。

二、使用场景

1、当一个抽象模型有两个方面,其中一个方面依赖于另一方面。将这二者封装在独立的对象中以使它们可以各自独立地改变和复用。
2、当对一个对象的改变需要同时改变其他对象,而不知道具体有多少对象需要被改变。
3、当一个对象必须通知其他对象,而它又不能假定其他对象是谁。换言之,不希望这些对象是紧密耦合的

三、简单实现

Cocoa通过两种方式实现了这种设计模式:通知KVO(Key-Value Observing)

通知:一对多
  1. 添加订阅者

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(doSomething)  name:@"notificationName" object:nil];
    

2.发布者发布通知

[[NSNotificationCenter defaultCenter] postNotificationName:@"notificationName" object:nil];

3.移除订阅

[[NSNotificationCenter defaultCenter] removeObserver:self name:@"notificationName" object:nil];

4.更新UI

- (void) doSomething {
    // TODO
}
KVO:一对一

四、总结

观察者模式的主要的作用就是对对象解耦,将观察者和被观察者完全隔离。

上一篇下一篇

猜你喜欢

热点阅读