我正在为 iPhone 开发一个间隔计时器健身应用程序,同时学习 OOP。主计时器对象必须能够通知任何其他感兴趣的事件对象,例如切换到新的间隔或计时器完成等。
我的第一个想法是使用委托,但我希望多个对象能够收到这些事件的通知,这并不是真的委托任何工作,它只是通知他们......所以这似乎不对。
其他人可以建议另一种模式/方法吗?
我正在为 iPhone 开发一个间隔计时器健身应用程序,同时学习 OOP。主计时器对象必须能够通知任何其他感兴趣的事件对象,例如切换到新的间隔或计时器完成等。
我的第一个想法是使用委托,但我希望多个对象能够收到这些事件的通知,这并不是真的委托任何工作,它只是通知他们......所以这似乎不对。
其他人可以建议另一种模式/方法吗?
这听起来很适合NSNotificationCenter
(事件/订阅者模式)
你应该使用 Key-Value-Observing,可可风格的观察者模式,如果接收者知道发送者,那么他可以打开它的通知。
如果没有给出,则可以选择更解耦的NSNotifications,因为发送者不需要知道发送通知的对象。
Cocoa 的通知机制基于 Observer 模式实现了消息的一对多广播。程序中的对象将自己或其他对象添加到一个或多个通知的观察者列表中,每个通知都由一个全局字符串(通知名称)标识。想要通知其他对象的对象——被观察对象——创建一个通知对象并将其发布到通知中心。通知中心确定特定通知的观察者,并通过消息将通知发送给他们。