过度使用App代表?

时间:2013-11-06 09:05:06

标签: ios cocoa-touch oop uiapplicationdelegate

所以,我正在重写另一个开发人员构建的旧应用程序 - 他不再是我们团队的成员。

我注意到在AppDelegate中有标准方法。除此之外,还有另外30种其他方法 - 从设置UI内容到检查T& Cs已被接受 - 在购物车中显示项目甚至加注注销和登录等。

现在我还是iOS开发人员的新手,我一直在阅读滥用应用程序委托并不是一个好主意。这会被视为滥用吗?

整个应用程序 - 开发人员使用:

MyAppDelegate *appDelegate = (MyAppDelegate*)[MyAppDelegate sharedAppDelegate];

我认为这可能不是最好的方法?

如果这是滥用AppDelegate - 如何解决它 - 不使用单身人士?

我正在考虑创建一个新类并将方法分组为相关性?所以与设置项目/检查等有关 - 进入一个班级。那么UI的东西可能会留在app代理中?

我认为打破这一点有助于解耦和依赖。但是,如果App委托中的大多数东西习惯于“做”而不是存储,那么这是正确的方法吗?

2 个答案:

答案 0 :(得分:3)

我不确定滥用AppDelegate类的一部分,但在编程预期中你应该将代码分成意义的完整类!然后管理变得更容易。

回到你的问题!你总是可以创建Singleton类,也可以为AppDelegate类创建类别类。所以在某种程度上你要分离代码。这意味着如果你在委托中有登录/注销方法,你可以创建名为+ UserManagement或Something的类别并放置所有代码那里!您还可以创建AppUser Singleton类并将所有用户管理内容放在那里!

答案 1 :(得分:2)

我会考虑使用AppDelegate作为臭代码。 单身人士更好,但请记住,他们很难进行单元测试。