Java android中的单态替换
我正在阅读设计模式,发现不鼓励使用单例。 我目前正在做的项目大量使用了单例。 一个例子是应用程序的设置状态由一个名为SettingsHandler的单例程序访问和更改。 在第一次创建应用程序时,SettingsHandler类被实例化,它开始从共享首选项加载设置值并将值保存在其本地字段中,然后从代码中需要的任何位置调用SettingsHandler.getInstance(context).getIsSettingXYEnabled()以获取应用程序设置的状态,代码中有许多地方需要了解设置的状态。当然,您也可以通过先在singleton字段中保存值,然后在shared preferences中保存值来保存设置状态,以便在下次加载应用程序时使用Java android中的单态替换,java,android,design-patterns,singleton,Java,Android,Design Patterns,Singleton,我正在阅读设计模式,发现不鼓励使用单例。 我目前正在做的项目大量使用了单例。 一个例子是应用程序的设置状态由一个名为SettingsHandler的单例程序访问和更改。 在第一次创建应用程序时,SettingsHandler类被实例化,它开始从共享首选项加载设置值并将值保存在其本地字段中,然后从代码中需要的任何位置调用SettingsHandler.getInstance(context).getIsSettingXYEnabled()以获取应用程序设置的状态,代码中有许多地方需要了解设置的状态
我的问题是:如果单身是邪恶和坏的,没有它我怎么做?我确信我只需要appsettings类的一个实例,并且我需要在代码中的许多不同位置访问它。例如,我可以在应用程序启动时创建一次实例,然后在代码中传递该引用,但这将是一个很大的混乱,因为我将不得不将其作为参数传递给许多构造函数,所以这里有什么替代方法使代码更干净?“不鼓励使用单例”——真正的单身汉是不被鼓励的。然而,特别是在Android应用程序开发中,看起来像单身的事情很常见。。。只要它们是由依赖倒置框架(例如,剑柄匕首)配置和提供的。从编程的角度来看,它们感觉有点像单例,但我们可以根据需要替换它们,例如用于测试。