1

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

我注意到的是,在 AppDelegate 中有标准方法。最重要的是,那里还有大约 30 种其他方法——从设置 UI 内容到检查是否已接受 T&C 之类的内容——再到在购物车中显示商品,甚至为注销和登录添加香精等。

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

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

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

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

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

我正在考虑创建一个新类并将方法分组到相关性?因此,与设置项目/检查等有关的任何事情都归为一类。那么 UI 的东西可能会留在应用程序委托中吗?

我认为打破这一点将有助于解耦和依赖。但是,如果 App 委托中的大部分内容都用于“执行”而不是存储,这是否正确?

4

2 回答 2

3

我不确定是否会滥用 AppDelegate 类的一部分,但在编程前景中,您应该将代码分成有意义的完整类!然后它变得更容易管理。

回到你的问题!您始终可以创建单例类,也可以为 AppDelegate 类创建类别类因此以某种方式分离代码。这意味着如果您在委托中有登录/注销方法,则可以创建名为 +UserManagement 或某物的类别并放置所有代码那里!您还可以创建 AppUser Singleton 类并将所有用户管理内容放在那里!

于 2013-11-06T09:13:58.860 回答
2

我会考虑使用 AppDelegate 作为臭代码。单例更好,但要记住它们很难进行单元测试。

于 2013-11-06T09:52:58.470 回答