Dieses Mal zeige ich Ihnen, wie Sie einen Singleton in Swift definieren und welche Vorsichtsmaßnahmen beim Definieren eines Singletons in Swift gelten. Hier ist ein praktischer Fall, schauen wir uns das an.
Was ist ein Singleton?
Einzelfallmuster ist das einfachste unter den Entwurfsmustern. Selbst einige Mustermeister bezeichnen es nicht als Muster, sondern als Implementierungstechnik, da Entwurfsmuster auf Objekte achten Abstraktion der Beziehung zwischen Objekten, während das Singleton-Muster nur ein eigenes Objekt hat.
Das Singleton-Muster, auch Monadenmuster genannt, ist ein häufig verwendetes Software-Designmuster. Bei der Anwendung dieses Musters muss die Klasse eines Singleton-Objekts sicherstellen, dass nur eine Instanz vorhanden ist.
Das Singleton-Entwurfsmuster ist möglicherweise das am häufigsten diskutierte und verwendete Entwurfsmuster und in Interviews möglicherweise auch das am häufigsten gefragte Entwurfsmuster. Der Hauptzweck dieses Entwurfsmusters besteht darin, sicherzustellen, dass im gesamten System nur eine Instanz einer Klasse erscheinen kann. Dies ist natürlich notwendig, etwa die globalen Konfigurationsinformationen Ihrer Software, einer Factory, einer Hauptsteuerklasse usw.
So erstellen Sie schnell einen Singleton
Es gibt die folgenden zwei Möglichkeiten, einen Singleton in Swift zu erstellen
Der Weg der globalen Variablen
let sharedNetworkManager = NetworkManager(baseURL: API.baseURL) class NetworkManager { // MARK: - Properties let baseURL: URL // Initialization init(baseURL: URL) { self.baseURL = baseURL } }
Verwenden Sie diese globale Variable als Referenz
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { print(sharedNetworkManager) return true }
StatischeAttribute und PrivatisierungBauweisen
class NetworkManager { // MARK: - Properties private static var sharedNetworkManager: NetworkManager = { let networkManager = NetworkManager(baseURL: API.baseURL) // Configuration // ... return networkManager }() // MARK: - let baseURL: URL // Initialization private init(baseURL: URL) { self.baseURL = baseURL } // MARK: - Accessors class func shared() -> NetworkManager { return sharedNetworkManager } }
Rufen Sie die Klassenmethode direkt als Referenz auf
NetworkManager.shared()
Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!
Empfohlene Lektüre:
So verwenden Sie das On-Change-Attribut in IView
So verwenden Sie die Sass-Konfiguration in Vue Projekt
Das obige ist der detaillierte Inhalt vonMethodeninstanzen zum Definieren von Singletons in Swift. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!