【发布时间】:2013-11-06 09:05:06
【问题描述】:
所以,我正在重写由另一位开发人员构建的旧应用程序 - 他不再是我们团队的一员。
我注意到的是,在 AppDelegate 中有标准方法。最重要的是,还有大约另外 30 种其他方法 - 从设置 UI 内容到检查是否已接受 T&C 之类的内容 - 到显示购物车中的项目,甚至为注销和登录加香等。
现在我还是 iOS 开发的新手,我一直在读到滥用应用程序委托并不是一个好主意。这会被视为滥用吗?
整个应用程序 - 开发人员使用:
MyAppDelegate *appDelegate = (MyAppDelegate*)[MyAppDelegate sharedAppDelegate];
我认为这可能不是最好的方法?
如果这是滥用 AppDelegate - 如何解决它 - 不使用单例?
我正在考虑创建一个新类并将方法分组到相关性?因此,与设置项目/检查等有关的任何事情都归为一类。那么 UI 的东西可能会留在应用程序委托中吗?
我认为打破这一点将有助于解耦和依赖。但是,如果 App 委托中的大部分内容都用于“执行”而不是存储,这是否正确?
【问题讨论】:
-
为什么这么害怕单身?如果您需要访问应用程序中每个位置的某些数据和方法 - 单例就是答案。只需使用有史以来最伟大的模式 - 不要害怕它:)
-
单例违反了 SOLID 原则。我认为如此严重地依赖一个类是一个问题。
-
我建议为此创建一个单例类,因为它们有很多方法和其他添加的变量和东西。如果只有一两个变量,我建议将其保留在 AppDelegate 中(因为它有效,无需修改它并再次进行所有测试),无需为这么小的员工创建新的单例。
标签: ios cocoa-touch oop uiapplicationdelegate