問題:
ファイルを受け取り、翻訳し、実行するフレームワークを構築しています。フレームワークはあらゆる種類のファイルを処理できる必要があります。この目的のために、ファイルを変換および実行するためのクラスとメソッドを含む DLL をアップロードする方法を提供しました。私が探しているのは、プラグイン インターフェイスを定義する最良の方法です
解決策 A:
公開されているインターフェイスのセットを定義します。プラグインはこれらのインターフェースを実装する必要があります。
解決策 B:
公開されているいくつかの抽象クラスを定義します。プラグインは、これらのクラスの抽象メソッドを継承およびオーバーライドする必要があります。
ソリューション C: rcravens
コード内でインターフェイスを渡し、プラグインの拡張性を可能にするために公開されている抽象クラスを作成します。選択
このソリューションは、基本的な実装 (この場合は便利) を可能にするという理由だけで、インターフェースよりも先に選択されました。コード内でのモックを可能にするという理由だけで、抽象クラスの前に選択されました。コンポジション フレームワークは優れていますが、制限された拡張性のみが必要なこのアプリケーションのような軽量のものには少し過剰です。
ソリューション D: JayとChris Shain
構成フレームワーク ( Managed Extensibility Framework(MEF)など) を実装し、それを中心に構築する
新しい解決策があれば、このリストに追加します。答えは、解決策を最も正当化できる人物に与えられます(利点と制限がある可能性があります)。
事前に感謝します、
Tech Test Dude