スレッドセーフと例外処理を保証できないプラグインタイプのクラスがいくつかあります(将来、第三者によってコーディングされるとしましょう)。メインアプリケーションは「プラグイン」インターフェースを介してのみこれらを認識し、内部で何をするかは気にしません。これらのプラグインクラスでスローされた例外またはスレッドロックのために、アプリケーションがクラッシュまたはフリーズする余裕がないことを除いて。プラグインクラスはメインアプリケーションに依存せず、メインアプリケーションからいくつかのコマンドを実行するだけです。他の2つの相互作用は次のとおりです。
- 非同期タスクが完了したら、インターフェースのメソッド(メインアプリからメソッドargとして提供)を呼び出します。
- 構成用のGUIを提供します。
JPanel
(メインアプリケーションは、これを要求し、コンテナーから追加/削除するだけです。それ以上のことはありません。)
これを達成するためのいくつかの良い方法は何ですか?私は、実際のプラグインメソッドへの同期されたtry-catch呼び出しを備えたラッパーを考えています。ここでAOPインターセプターを使用できますか?Javaでクラスをサンドボックス化する他の方法はありますか?