Ho visto che in alcuni progetti, Module Pattern
utilizza invece di Singleton Pattern
e viceversa.Differenti tra Pattern modulo e Pattern Singleton?
Voglio sapere esattamente, qual è la differenza tra Module Pattern
e Singleton Pattern
?
Ho visto che in alcuni progetti, Module Pattern
utilizza invece di Singleton Pattern
e viceversa.Differenti tra Pattern modulo e Pattern Singleton?
Voglio sapere esattamente, qual è la differenza tra Module Pattern
e Singleton Pattern
?
Module pattern in javascript si riferisce alla modularizzazione del codice per un meccanismo comune. Funziona piuttosto bene per dividere una "classe" su più file, in quanto è possibile definire in modo indipendente il costruttore e vari gruppi di metodi prototipo. Ciascuno dei moduli è solitamente racchiuso all'interno di una chiusura per creare variabili locali statiche - questo è chiamato modello di modulo rivelatore.
Singleton pattern in javascript si riferisce alla restrizione delle creazioni di istanza, spesso utilizzando lazy initialisation.
Naturalmente è possibile considerare il modello di modulo come una specializzazione del modello singleton (vedere lo Wikipedia article), il costruttore e il suo oggetto prototipo prenderebbero quindi la parte della "singola istanza".
Tuttavia, è possibile combinarli "indipendentemente": un modulo che definisce una classe che utilizza l'approccio Singleton.
Quindi, è corretto usare 'Pattern Module' come' Singleton Pattern'? –
Certo, puoi anche avere un modulo che crea solo un oggetto singleton, senza alcuna classe (l'approccio più prototipo) – Bergi
@Bergi Ho avuto una domanda da aggiungere a questo: Il pattern 'Utilities.game_manager = {functionName: function() {var1, var2 ...}, ...}; 'nasconde le variabili tanto quanto fa il modello del modulo (cioè, non mostra le variabili all'interno della proprietà function di' Utilities.game_manager') . C'è quindi una differenza tra questo e il modello del modulo? Voglio dire, il Revealing Module Pattern restituisce funzioni che possono esporre le variabili nascoste, ma puoi farlo con lo schema che ho appena mostrato. – Growler
prega di dare un'occhiata a questo: http://addyosmani.com/resources/essentialjsdesignpatterns/book/#designpatternsjavascript – Teemu
@Teemu Questo è un buon documento, ma non è chiarire la differenza tra quelli. –
nomi diversi o implementazioni per sciocchezze? –