0

以下のクラス ダイアグラムでは、プラグイン/拡張システムの現在のアプローチを確認できます。拡張機能に、一般的/グローバルな API を提供したいと考えています。ただし、公開される API は、参照されるオブジェクトの実際の機能のサブセットのみで構成される必要があります。私の最初の考えは、インターフェイスを使用することでした。これに関する問題は、悪質なプラグインがインターフェースを内部クラスにダウンキャストして混乱させる可能性があることです。(私も気にする必要がありますか?) 2 番目の考えは、プロキシ パターンを使用することでした。現在、私はそれらの両方を使用しています。これは本当に必要ではないと思います。しかし、バイナリ互換性を念頭に置いて、ここで複雑さを軽減するにはどうすればよいでしょうか?

ここに画像の説明を入力

4

2 に答える 2

2

プログラムを何らかの形で破損させないプラグインが必要な場合は、それらのプラグインを別のプロセスとして作成する必要があります。その後、プラグインは別のメモリ空間で実行され、パイプまたはソケットを介してアプリケーションと通信します。

于 2015-09-18T12:51:43.393 に答える