用于在整个应用程序中更新数据的委托和观察者设计

时间:2012-04-16 20:10:09

标签: objective-c design-patterns delegates

我正在构建一个具有中心类M的iPhone应用程序,它可以从Web API获取大量数据。每当此类获取数据时,它必须更新两个控制器,例如A和B.为了支持这一点,A和B都列在具有更新命令的接口下。 A和B也需要能够查询M类数据,所以我在A和B中都添加了一个句柄。

问题是设置不是很模块化。我正在寻找清理设计的方法。

编辑 - 此外,M类没有任何先入为主的概念,即A类和B类的确切类型。

感谢。

1 个答案:

答案 0 :(得分:0)

就像你提出的标题一样:使用 observer 模式。 AB观察者(实现观察者协议)到M,这是主题。更新观察者时,还可以通过update方法提供事件数据,也可以作为M实现的主题协议的句柄。这样,AB通过观察者主题协议与M分离。