0

XMLファイルからいくつかのコマンドを取得して実行し、コマンドのエラーをチェックし、メールで報告するなどの簡単なプログラムを作成しました。コマンドのエントリは、たとえば次のようになります。

<command>C:\Program Files\Test\test.exe /xyz</command>

ここで、ある種のプラグインを紹介したいと思います。

<command myPlugin1="abc,1" myPlugin2="def">C:\Program Files\Test\test.exe /xyz</command>

プラグインをJavaクラスとして記述して、いくつかのインターフェースを実装するか、いくつかのプラグインクラスをサブクラス化し、次のようなメソッドを持つことを考えました

pluginExec(List<String> parameters, String command)

パラメータ (abc,1 など) とコマンド (C:\Program Files\Test\test.exe /xyz) が渡されます。次に、コマンド タグのすべての属性名、つまり myPlugin1 と myPlugin2 を取得し、myapp.plugins 名前空間の属性と同じ名前のクラスを検索して、pluginExec(...) を呼び出します。

これに関するより良いアイデアはありますか?私の考えでは、何らかの熟考が必要だと思いますが、それなしで方法はありますか? アプリケーションはプライベート ツールであり、ソフトウェアを再コンパイルせずにプラグインを追加できる必要はありません。毎回コードを変更したくないだけで、新しいプラグイン クラスをプラグインしたいだけです。

4

1 に答える 1

1

あなたが開発したプラグインベースのプログラムが将来大きく成長しないのであれば、あなたのデザインは問題ありません。

ただし、拡張が予想され、複数の機能を追加する予定がある場合は、OSGi などの Java 標準を試すことをお勧めします。

于 2012-09-02T21:02:07.557 に答える