2017-10-19 2 views
0

NSApplication.shared" renvoie l'instance de l'application, la créant si elle n'existe pas encore. "Pourquoi une référence à l'application actuelle appelée `shared`

Pourquoi l'instance d'application en cours est-elle nommée 'shared'?

[Le NSWorkspace.shared même nom fait sens pour moi car il est l'espace de travail partagé par les applications en cours d'exécution dans le courant NSWorkspace]

+0

C'est un singleton. Est-ce que votre question à propos de l'expression «la créer si elle n'existe pas encore»? – Grimxn

+0

Ceci est moins une question de programmation et plus d'une question de nommage. – JAL

+0

Maintenant que j'ai lu la réponse de Luca ci-dessous, ma curiosité pour le choix apparemment bizarre du nom est rassasiée. En tant que développeur ne connaissant pas la convention d'Apple d'utiliser 'shared' pour se référer à l'instanciation en utilisant le pattern singleton, le nom n'avait aucun sens. Man, les gens sont prompts à downvote des trucs sur ce site! –

Répondre

1

En cacao dans le passé, le modèle utilisé Singleton une propriété statique nommé sharedInstance à référence la seule instance disponible pour une classe singleton donnée. Chaque pièce de code qui nécessitait une instance de la classe Singleton (comme NSApplication) pouvait l'obtenir en utilisant la propriété sharedInstance.

Cette instance a donc été partagée entre différentes parties de l'application.

En 2016 les conventions de nommage pour les API de Mac OS, iOS, tvOS et watchos a été modernisé et sharedInstance a été rebaptisé simplement shared.