Maison >interface Web >js tutoriel >Instances de méthode pour définir des singletons dans Swift

Instances de méthode pour définir des singletons dans Swift

php中世界最好的语言
php中世界最好的语言original
2018-04-11 14:09:451624parcourir

Cette fois, je vais vous montrer comment définir un singleton dans Swift, et quelles sont les précautions lors de la définition d'un singleton dans Swift. Voici un cas pratique, jetons un oeil.

Qu'est-ce qu'un singleton

Le Modèle à cas unique est le plus simple parmi les Modèles de conception Même certains maîtres de modèles ne l'appellent pas un modèle, mais l'appellent une technique de mise en œuvre, car les modèles de conception prêtent attention aux objets. abstraction de la relation entre les objets, alors que le mode singleton n'a qu'un seul objet qui lui est propre.

Le modèle Singleton, également appelé modèle monade, est un modèle de conception de logiciels couramment utilisé. Lors de l'application de ce modèle, la classe d'un objet singleton doit garantir qu'une seule instance existe.

Le modèle de conception Singleton à instance unique est peut-être le modèle de conception le plus largement discuté et utilisé, et il peut également être le modèle de conception le plus fréquemment demandé lors des entretiens. L'objectif principal de ce modèle de conception est de garantir qu'une seule instance d'une classe peut apparaître dans l'ensemble du système. Bien entendu, cela est nécessaire, comme les informations de configuration globale de votre logiciel, ou d'une Usine, ou d'une classe de contrôle maître, etc.

Comment créer un singleton dans Swift

Il existe les deux manières suivantes de créer un singleton dans Swift

La voie des variables globales

let sharedNetworkManager = NetworkManager(baseURL: API.baseURL)
class NetworkManager {
 // MARK: - Properties
 let baseURL: URL
 // Initialization
 init(baseURL: URL) {
 self.baseURL = baseURL
 }
}

Utilisez cette variable globale pour référence

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
 print(sharedNetworkManager)
 return true
}

Statiqueattributs et privatisationMéthodes de construction

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
 }
}

Appelez directement la méthode de classe pour référence

NetworkManager.shared()

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web PHP chinois !

Lecture recommandée :

Comment utiliser l'attribut on-change dans IView

Comment utiliser la configuration sass dans vue projet

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn