XREA.COM Logo XREA.COM Ad

Sleipnir2スレ

34l ★:2007/05/03(木) 21:25:48 ID:???
プラグイン拡張機構のベース部分は完成した、ような気がしないでもない。

このPluggable.jsライブラリを使うことで、拡張可能なクラスが作成できる。
そのクラスにaddCommand()で動作を追加し、
更にそのコマンドにaddFilter()で事前処理・事後処理フィルタを追加したりできる。
フィルタ自体もコマンドなので、更に拡張することも可能。
プラグイン読み込み関数が用意されており、指定フォルダ内の*.jsファイルを読み込んで実行することで、プラグインによる拡張が実行される。プラグインの導入は、ファイルをコピーするだけでよい。

そうして拡張したクラスのインスタンスを生成し、
execCommand()でコマンドを呼び出したり、execFilters()でフィルタだけを実行したりできる。
コマンドの中からコマンドを呼んだり、コマンドを普通のメソッドとして実行したりすることも可能。
更に、execute()では、パラメータに与えられたオブジェクトのプロパティを調べて自動的にコマンドを決定してくれる。
例えば、params.commandがあれば、そのプロパティで指定されたコマンドが、
params.idがあれば、idに対応したデフォルトコマンドが、
params.qがあれば、qに対応したデフォルトコマンドが、
そのいずれもなければ、パラメータ未指定時のデフォルトコマンドが実行されるという具合。
コマンドラインやクエリ文字列で指定された操作を自動識別してくれるのである。

このシステムに従って拡張クラスを作れば、拡張機構の作成を意識することなく、自由に拡張可能なシステムが構築できる、かもしれないっぽいのではないかと思うのだがどうだろう。

投稿ファイル名: Pluggable.zip
http://lukewarm.s151.xrea.com/b/file/1163165308_34.zip
サイズ: 961 bytes
57KB
名前: E-mail:
ファイル:
0ch BBS 2005-10-08