首页 > 解决方案 > 如何在单例类中有多个实例?

问题描述

在 Swift 中有一个声明为单例的类。在这个单例类中声明了一个名为 A 的实例。

最初,内存中只有这个 A 的一个实例。有没有办法在单例类中创建这个 A 实例的多个实例?

一类

protocol ADelegate{
    func onSuccess()
    func onFail()
}

// I want to create multiple instances of this
class A{
    var delegate: ADelegate!
    // ...
    func requestCallback(){
        //...
        // success response 
        delegate.onSuccess()
    }
}
class ModuleA: ADelegate{
    var aInstance = A(delegate: self)
    func req(){
        aInstance.requestCallback()
    }

    func onSuccess(){
        // ModuleA do something
    }

    func onFail(){
    
    }
}

class ModuleB: ADelegate{
    var aInstance = A(delegate: self)
    // ModuleB do something
}

单例类(主要)

class Main{
    static var shared = Main()
    // Using ModuleA, ModuleB

}

标签: iosswiftsingleton

解决方案


如果你想在内存中创建类 A 的多个实例,那么它不会被称为单例类。这将与单例的设计模式概念相矛盾。如果您想要 A 的多个实例,则将该类设为普通类。但是单例类只能有一个实例。


推荐阅读