
6.1
ファクトリ
153
getRandomArray(1e6);
console.log('Done');
変数
p
に
Profiler
のインスタンスが保存されていますが、コードを見てもこの時点ではオブジェク
トがどのように生成、実装されているかわかりません。
上のコードを
profilerTest.js
という名前のファイルに入れて、次のコマンドを実行して確認し
てみましょう。
$ export NODE_ENV=development; node profilerTest
上のコマンドはコンソールにプロファイリング情報を出力します。模擬プロファイラのほうを試して
みたいなら、次のコマンドを実行します。
$ export NODE_ENV=production; node profilerTest
ここで示した例は、ファクトリ関数(メソッド)パターンの単純な応用ですが、オブジェクトの生成を
実装と分離する利点をはっきりと
示しています。
6.1.4
合成可能ファクトリ関数
Node
においてファクトリ関数をどのように実装するかわかったところで、
JavaScript
コミュニティで
人気となっている新しい高度なパターンを紹介しましょう。取り上げるのは「合成可能ファクトリ関数」
といって、複数のファクトリ関数から「合成」により機能拡張されたファクトリ関数を新たに生成できる
ようなタイプのものです。特に異なるオブジェクトから振る舞いやプロパティを継承するときに、複雑
なクラス階層を構築しなくてもオブジェクトを生成できるので便