Preferisco le classi o i singleton in JavaScript / Node?

1

Questa domanda si applica in particolare a Node.js, ma anche a JavaScript in generale.

Ho iniziato a lavorare su una semplice web app in Node.js. Sono relativamente nuovo a Node e JavaScript e provengo principalmente da C # e Java.

Nella mia app, ovviamente ho bisogno di oggetti. In C #, vorrei creare una classe e creare un'istanza per ottenere un oggetto.

In Node.js tuttavia, ho due opzioni:

  1. Creazione di una 'classe' in un modulo Node di sua proprietà, e in seguito require ing e istanzialo (come farei in C #).
  2. Creazione di un oggetto in un modulo Node a sé stante e utilizzo in seguito da require inserendolo direttamente.

Sto cercando di decidere quale sia l'approccio migliore in generale.

Mi sto appoggiando con forza verso l'approccio 1 , perché mi consente di istanziare la classe desiderata ogni volta che voglio, invece di usare un singleton globale.

D'altra parte, forse sembra l'approccio migliore semplicemente perché mi sono abituato, provenendo da C #. Forse sto solo cercando di fare C # in JS?

Quindi la mia domanda sarebbe: in Nodo e generalmente in JavaScript, quando si ha bisogno di un oggetto per implementare una funzionalità, dovrei andare con le classi o con oggetti semplici?

    
posta Aviv Cohn 08.02.2015 - 22:29
fonte

1 risposta

1

Il mio punto di vista in questa materia potrebbe non essere idoneo per una risposta completa, ma penso che tu stia comparando a approcci validi, che le differenze non sono una questione di stile, ma di risolvere problemi diversi.

Se temi di provare a fare C # in Javascript, forse dovresti iniziare mettendo in discussione una tua premessa più essenziale:

In my app, obviously I need objects.

Molto spesso, in Javascript questa affermazione non è indiscutibile come si potrebbe pensare. Probabilmente, se stai considerando un singleton come opzione, stai solo cercando uno spazio dei nomi in cui esporre un insieme di funzioni. In questo caso, puoi semplicemente aggiungere queste funzioni a module.exports , che è già un oggetto che funge da spazio dei nomi del modulo.

Questo è un'interessante lettura sui numerosi pattern che possono essere utilizzati durante la progettazione dell'interfaccia di un modulo in Node.js.

    
risposta data 08.02.2015 - 23:20
fonte

Leggi altre domande sui tag