使用NSNotificationCenter作为中央操作路由器/调度程序

时间:2014-01-03 08:42:06

标签: ios objective-c cocoa

我的一位同事建议在我们的iOS应用程序中使用NSNotificationCenter作为某种中央路由器/调度程序。因此,如果我们想要从一个视图控制器转换到另一个视图控制器,我们可以通过发送一个通知(可选地带有一些userInfo来初始化目标视图控制器)来执行此操作,动作调度程序单例类将捕获并执行转换工作(主要是导航)控制器推动)。我们的应用程序中有几个地方可以跳转到同一个视图控制器(显示实体的详细视图)。通过这种方法,我们可以将它放在一个地方并轻松触发它。

这是个好主意吗?你能想到任何弊端,甚至可能是未来的主要问题吗?

1 个答案:

答案 0 :(得分:0)

在使用通知中心作为中央集线器的大部分工作状态机处理方式的情况下,这是一个好主意。接收器可以轻松维护导航堆栈,并触发用户轻松导航返回/转发到通知中心所引起的更改。

这种范例的一个优点是应用程序的任何部分都不需要知道其他部分(除非他们需要直接服务),如果你有一个大的应用程序,这可以简化结构。

缺点可能是各个部分之间的通信可能会让程序员开始使用该代码感到困惑。当然取决于那个人的知识水平。