ES6 Klasse und module.exports

8

Ich sehe dieses Muster heutzutage für die Implementierung von nodeJS, wo wir den folgenden Code für mein Modul haben:

%Vor%

Dann, wenn ich eine Anforderung mache und schließlich neu sage, um eine Instanz der Klasse zu erstellen.

%Vor%

Dieses Muster wird nach mir immer mehrere Instanzen der Klasse Foo erzeugen, jedes Mal wenn es aufgerufen wird.

Das andere Muster hätte sein können, wo ich es gewohnt bin, wo in meinem foo.js sein würde.

%Vor%

Und dann brauche ich nur und rufen Sie bar.

%Vor%

Frage würden sich diese beiden gleich verhalten? Bleibt das zweite Muster jedes Mal Objekte erstellen, die ich benötige, und rufe die Leiste für das Objekt auf?

Ist das Erstellen eines Singleton-Musters in Fall 1 keine gute Idee, wie wir es in anderen Sprachen gewohnt sind, wobei wir die gleiche Instanz weiterführen, wenn sie bereits einmal erstellt wurde?

    
Sourav Chatterjee 16.09.2016, 08:56
quelle

1 Antwort

8
  

Dieses Muster wird nach mir immer mehrere Instanzen der Klasse Foo erzeugen, jedes Mal wenn es aufgerufen wird.

Ja, das ist der Zweck. Obwohl new Foo(); in Ihrem Beispiel auch nur einmal ausgeführt wird.

  

würden diese beiden sich gleich verhalten?

Nein.

  

Bleibt das zweite Muster immer Objekte, die ich benötige, und rufe das Objekt an?

Nein. require() Aufrufe werden zwischengespeichert, sie geben immer das gleiche Modul zurück.

  

Ist das Erstellen eines Singleton-Musters keine gute Idee?

Nein, ein Singleton ist selten eine gute Idee, wenn es einen Zustand enthält. Ihr Beispiel nicht, aber wo class es in Node.js normalerweise verwendet werden.

    
Bergi 16.09.2016, 09:30
quelle