
176
6
章 オブジェクト指向デザインパターンの
Node.js
への適用
const fs = fsAdapter(db);
プログラムを再実行すると、同じ出力が得られるはずですが、指定されたファイルはファイルシステ
ムを使って読み書きされてはいないという事実が異なっています。アダプタを使って実行されたすべて
の操作は、
LevelUP
データベース上で実行される操作に置き換えられています。
今作成したアダプタは馬鹿げたものに見えるかもしれません。実際のファイルシステムの代わりに
データベースを使っても、何の役にも立たないのではないかと思われたでしょう。しかし、
LevelUP
自
体のアダプタにブラウザでもデータベースを実行できるようにするものがあることを思い出してくださ
い。そのようなアダプタのひとつが
level.js
(
https://npmjs.org/package/level-js
)です。これでア
ダプタのもつ意味が明らかになりました。モジュール
fs
を利用するブラウザのコードと共用できるの
です。たとえば
3
章で作成したウェブスパイダーは、動作中にダウンロードしたウェブページを保存す
るのに
fs
API
を使っています。今作成したアダプタに少し手を入れれば、ウェブスパイダーがブラウ
ザ内で実行できるのです。この先、ブラウザとコードを共用したい場合にアダプタがきわめて重要なパ
ターンであることがわかってきます。
8
章でさらに詳しく見ていきます。
6.5.2
実践での利用
アダプタパターンには実践での応用例が多数あ ...