Stellen Sie sich vor, wir haben zwei einfache Klassen (weggelassen Export):Node.js -leistung
class SomeService {
async func() {
// some async function logic
return value;
}
}
class SomeController {
constructor (service) {
this.service = service;
}
async func() {
const value = await this.service.func();
// some controller-specific logic here
return value;
}
}
Auch wir haben einfache Funktion, die diese zwei Klassen auf zwei Arten verwenden.
Fall eins:
// require clasess
const somefunc = async() => {
const controller = new SomeController(new SomeService());
const value = await controller.func();
return value;
}
module.exports = somefunc;
Fall zwei:
// require clasess
const controller = new SomeController(new SomeService());
const somefunc = async() => {
const value = await controller.func();
return value;
}
module.exports = somefunc;
Soweit ich verstehe, wie require
Arbeiten des Knotens im ersten Fall controller
werden jedes Mal erstellt werden, wenn die somefunc
genannt wird. Im zweiten Fall wird controller
nur einmal erstellt, wenn die Datei ausgewertet wird. Welcher Fall ist besser und wichtiger, was sollte ich lesen oder nachschlagen, um zu verstehen, warum?
es geht nicht um "was ist besser", sondern "welcher Umfang besser modelliert das Problem, das Sie versuchen zu lösen". – aaaaaa