为什么在iOS中需要单独的单例类来处理AppDelegate单例上的全局变量?

为什么在iOS中需要单独的单例类来处理AppDelegate单例上的全局变量?,ios,singleton,appdelegate,Ios,Singleton,Appdelegate,在iOS中,AppDelegate是单例类,那么为什么我需要一个单独的单例类来处理全局变量呢?为什么不将AppDelegate用作全局单例?这背后有什么具体原因吗 主要原因可能归结为关注点的分离。例如,如果您有需要在整个应用程序中显示的相同数据,您可以选择创建一个名为DataManager的单例类,该类处理检索、保存、编辑和删除这些数据。是的,您可以通过App Delegate添加所有相同的功能,结果可能是相同的,但是如果开发人员关心的是有组织且可读的代码,并且如果您为一家公司开发,或者希望其他

在iOS中,AppDelegate是单例类,那么为什么我需要一个单独的单例类来处理全局变量呢?为什么不将AppDelegate用作全局单例?这背后有什么具体原因吗

主要原因可能归结为关注点的分离。例如,如果您有需要在整个应用程序中显示的相同数据,您可以选择创建一个名为DataManager的单例类,该类处理检索、保存、编辑和删除这些数据。是的,您可以通过App Delegate添加所有相同的功能,结果可能是相同的,但是如果开发人员关心的是有组织且可读的代码,并且如果您为一家公司开发,或者希望其他人继续使用您的代码,则肯定是一个问题,然后,如果您制作了一个DataManager单例,那么编写代码的人就可以清楚地了解这个类的职责是基于它的名称的


创建单独的类也有助于减少难以理解的大型类。如果您的应用程序中有DataManager、APIManager和其他管理器,那么随着应用程序的增长,将所有这些功能放在一个AppDelegate中可能会变得混乱

你可以使用它,没有人能强迫你不使用它。总的来说,这是一种不好的做法,但我认为这不是你要问的