
7.3
プラグインの接続
235
自のプライベートな依存関係をもつことができるので、開発者は何をメインのアプリケーションに公開
し、何をプライベートのままにしておくかを、結合性排除と情報隠蔽がアプリケーション全体にもたら
す良い効果を考慮に入れつつ考えざるをえなくなります。
パターン
パッケージは
npm
と組み合わせてコードを配布するためだけでなく、アプリケーション
内の整理の手段としても使える。
ここで説明したユースケースは、パッケージを(
npm
のパッケージの大多数のように)ステートレス
で再利用可能なライブラリとして利用するばかりでなく、むしろ特定のアプリケーションに対してサー
ビスを提供したり、機能を拡張したり、振る舞いを修飾したりするための不可欠な部品として利用して
います。主な違いは、この型のパッケージは単に使われているのではなく、アプリケーション内部に組
み込まれているということです。
ここではプラグインという言葉を、特定のアプリケーションに組み込まれることを意図し
たパッケージの意味で使います。
この後に示すように、この型の構造をサポートしようと決めたときによく直面する問題が、メインの
アプリケーションの部分をプラグインに公開することです。実際、ステートレスなプラグインだけを考
えるわけにはいきません
−
もちろん完全な拡張性を目指すためのものなのですが、プラグインは作業
を行うために親アプリケーションのサービスをいくつか使わねばならないことがあるからです。この部
分は、親アプリケーション内でモジュ