2017-10-17 6 views
0

が想像した性能。Node.jsのは、我々は2つの簡単なクラス(省略輸出)を得た、

ケース1:

// require clasess 

const somefunc = async() => { 
    const controller = new SomeController(new SomeService()); 
    const value = await controller.func(); 
    return value; 
} 
module.exports = somefunc; 

ケース2:

私は最初のケース controllerにおけるノードの require作品は somefuncが呼び出されるたびに作成されるかを理解する限り
// require clasess 
const controller = new SomeController(new SomeService()); 

const somefunc = async() => { 
    const value = await controller.func(); 
    return value; 
} 
module.exports = somefunc; 

。 2番目のケースでは、controllerはファイルが評価されるときに1回だけ作成されます。どのようなケースが良い、より重要なのですか?

+0

「どちらが良いですか」ではなく「どのスコープがあなたが解決しようとしている問題をモデル化するか」ではありません。 – aaaaaa

答えて

0

答えはあなたのユースケースによって異なると思います。関数が呼び出されるたびに、SomeControllerを再作成する必要があるかどうかを自問する必要があります。もう一つ考慮すべき点は、SomeControllerが初期化時に何か非同期に依存しているかどうかです。例えば、コントローラーがそのコンストラクターでデータベース接続にアクセスする必要がある場合は、データベース接続が確立されるまで待つ必要があります。このような状況では、機能内でSomeControllerを初期化する以外に選択肢がないかもしれません。私が言ったように、このような場合は客観的なbetterはありません。それはあなたのユースケースに依存します。

関連する問題