Heim >Web-Frontend >js-Tutorial >Methodeninstanzen zum Definieren von Singletons in Swift

Methodeninstanzen zum Definieren von Singletons in Swift

php中世界最好的语言
php中世界最好的语言Original
2018-04-11 14:09:451589Durchsuche

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn