リフレクションは、プラグインを扱うときに特に役立つと読みました。誰かがこの特定の状況での利点を親切に強調してもらえますか? C# または Java の両方で。
3 に答える
「最高レベルの抽象化では、ホスト アプリケーションはプラグインをロードし、プラグインと通信して、設計されたサービスを利用できる必要があります。これらのタスクは両方とも、開発者の選択に応じてさまざまな方法で実装できます。 C# と .NET を選択すると、リフレクションを使用してプラグインをロードしたり、インターフェイスまたは抽象クラスを汎用通信の手段として使用したりできます。」
その一部をグーグルで検索すると、記事が表示され、さらに詳しく読むことができます。
グーグルで検索してみませんか?
.NET の場合、インターフェイスを使用してプラグインの基本的なレイアウトを作成できます。「IPlugIn」としましょう。次に、IPlugIn を実装するクラスを含むアセンブリを読み込みます。これで、IPlugIn によって派生したものである場合はすべての型を調べたり、アセンブリで属性を定義して、どのクラスがプラグインであるかを示すことができます。
私の意見では、プラグインの実装にリフレクションに頼る必要はありません。通常のインターフェイスとサービスを使用することをお勧めします。プラグインが実装するいくつかのインターフェースを定義し、提供したいフレームワークと統合するのに役立つサービスをプラグインが消費できるようにします。