私はインターフェースを持っています。新しい要件のために、インタフェースは今実装できる単一のメソッドを持っています。インターフェイスに実装を追加するために拡張メソッドを使用していますかAnti-OOP?
public static string ToEntityConnectionString(this IEnvironmentProvider provider)
//Converts a standard connection string to EntityFramework compatible string
インターフェイスを抽象クラスに変換できますが、現在はこのクラスを継承クラスとして制限しています。ただし、このインタフェースは現在Dependency Injectionだけで使用されています。
私は、エクステンションメソッドを使用してインターフェイスに機能を追加できると考えました。それは本当に良いと思われる。インターフェイスへの実装の追加?そんなことをするのは悪い習慣と考えられますか?もしそうなら、なぜですか?状況を考慮して、代わりに何を使用すべきか?
拡張メソッドは本当に魔法です。あらゆる種類の継承構造などを悪用することができます。なぜなら、それらは単に静的メソッドであるからです。それはシンタックス・シュガーとIntelliSenseを組み合わせたもので、想像以上のものにこだわることができます。 – Yuck
申し訳ありませんが、新しいメソッドをインターフェースに追加するのはなぜオプションではないのか分かりません。それを私に説明してもらえますか? – Dejas
インスタンスの内部状態にアクセスするメソッドが必要ない限り、拡張メソッドは非常に便利です。 –