多数のインターフェイスから継承する多数のクラスがあります。これらのクラスが実装しているインターフェースは、共通のメソッドを共有していませんが、共通の最初のステップを共有しています。これを示すのは次のとおりです。
クラス A は次のようになります。
class A : InterfaceA
{
GetFoo(Database db)
{
PerformSetup(db); // This is the common first step.
// Do foo things
}
}
クラス B は次のようになります。
class B : InterfaceB
{
GetBar(Database db)
{
PerformSetup(db); // This is the common first step.
// Do bar things
}
}
明らかに、メソッド PerformSetup を使用して基本クラスを作成し、これらすべてのメソッドでそれを呼び出すことができます。しかし、私の問題は、非常に多くのメソッドがあり、PerformSetup() への呼び出しがそれらすべてに含まれている必要があることですが、まだどのメソッドにも含まれていません。
したがって、そのセットアップ コードをすべてのメソッドの先頭にコピー アンド ペーストすることもできますが、DRY と自分の時間のために、このメソッドが任意のメソッドの前に自動的に呼び出されるようにする方法があるかどうか疑問に思っていました (可能な場合は公開のみ) メソッド呼び出し? どうにかしてイベントを利用できませんか?共通のインターフェイスを共有するクラスはなく、これらのインターフェイス メソッドの多くには Database パラメータに加えてパラメータがありますが、すべてのメソッドに database パラメータがあることに注意してください。
これはおそらく少し幻想的ですが、人々が C# でどのようなクレイジーな仕掛けを作成できるかを常に知りたいと思っています。