停止在 Swift 中创建单例
避免使用单例,原因如下:
隐藏依赖关系:类依赖于没有明确指示的单例,这使得跟踪应用程序依赖关系变得更加困难并导致意外的耦合。
循环依赖:相互依赖的单例会产生循环,实例相互等待,从而导致初始化死锁。
测试挑战:使用单例使测试和 SwiftUI 预览变得复杂,因为单例不能轻易地替换为模拟。
缺乏灵活性:单例使得为不同环境提供不同的实现变得困难(例如,用于测试的实时版本与模拟版本)。
避免使用单例,原因如下:
隐藏依赖关系:类依赖于没有明确指示的单例,这使得跟踪应用程序依赖关系变得更加困难并导致意外的耦合。
循环依赖:相互依赖的单例会产生循环,实例相互等待,从而导致初始化死锁。
测试挑战:使用单例使测试和 SwiftUI 预览变得复杂,因为单例不能轻易地替换为模拟。
缺乏灵活性:单例使得为不同环境提供不同的实现变得困难(例如,用于测试的实时版本与模拟版本)。