ios - 过度使用 App Delegate?

标签 ios cocoa-touch oop uiapplicationdelegate

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

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

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

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

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

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

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

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

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

最佳答案

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

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

关于ios - 过度使用 App Delegate?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19807785/

相关文章:

iphone - 如何使 View 具有半透明边框并显示下面的 View

ios - 通过交叉引用多个静态库与 iOS 应用程序链接错误

ios - 以时间间隔执行选择器

java - 如何向对象ArrayList添加多个值?

我可以在 C 程序中使用面向对象的头文件吗

ios - 无法运行 Appium 服务器

ios - 单元测试按钮单击不起作用

ios - 当 View 改变时做一些事情

iphone - 如何暂停 UIImageView 动画

c++ - 成员函数到友元函数的转换