让许多课程订阅AppDelegate通知是不好的做法?

时间:2014-08-08 16:09:00

标签: ios appdelegate

我见过代码,其中有八个不同的类订阅appDidBecomeActiveappDidEnterBackground通知。如果观察者遍布整个代码库,似乎很难跟踪发生了什么。是否更常见/更容易让AppDelegate响应这些事件并让它调用函数?

1 个答案:

答案 0 :(得分:2)

这是一个责任问题。如果一个类知道它必须在应用程序介于前台和后台之间时执行特定操作,那么该类应该响应这些通知并执行它需要做的事情。没有其他班级应该具备这方面的知识。

这是一个更好,更灵活的设计,而不仅仅是处理一个类中的事件,然后必须知道所有其他类及其需求。

有很多类都会响应给定的通知,但是每个类需要做的事情就是它所属的位置 - 每个类都有。

考虑键盘事件。键盘通知在窗口级别定义,但许多视图控制器响应键盘事件是很常见的。没有人会考虑只有应用程序委托或关键窗口响应键盘事件。对于" AppDelegate"它没有什么不同。通知。