
38
2
章
Node.js
の基本パターン
ジのディレクトリ構成の例で、同一モジュールの複数のバージョンがインストールされていたのを思い
出してください。あのような状況下では、同じ名前のモジュールを
require
しても異なるインスタン
スが返されてしまいます。
7
章でこの問題を再び取り上げ、より高度なパターンを紹介します。
このパターンの追加機能としてよく使われる手法は、エクスポートされるインスタンスの生成元とな
るコンストラクタを付加情報として提供することです。それにより、利用側は自身でインスタンスを生
成したり、機能を拡張したりできます。次に例を示します。
module.exports.Logger = Logger;
次はコンストラクタを使用して、デフォルトとは別のインスタンスを生成する例となります。
const customLogger = new logger.Logger('CUSTOM');
customLogger.log('This
is an informational message');
これは先の
substack
パターンにおける、関数をネームスペースとして使用する例と似ています。つ
まり、多くのユーザーはモジュールがエクスポートするデフォルトのインスタンスをそのまま使用しま
すが、一部のユーザーは独自のパラメータでインスタンスを生成したり、クラスそのものを拡張したい
でしょう。そのようなユーザーのために、副次的な機能としてコンストラクタを提供しているのです。
2.2.3.5
何もエ