たとえば、C# クラスがあるとします。
class Foo : Bar, IBar, IBar2
{
}
... ここで、Bar はクラスで、IWhatever と IFine はインターフェイスです。複数のクラスで IWhatever と IFine の同様の実装を使用する予定です。このコードをカプセル化してすべてのクラスで再利用する唯一の方法は、IWhatever を継承するクラス Whatever と IFine を継承する Fine を作成することです。これらのインターフェイスを実装するクラスのメンバーにしてから、インターフェイスから実装されたメンバーでそれらのメンバーを呼び出します。
class Foo : Bar, IWhatever, IFine
{
IWhatever mWhatever;
IFine mFine;
Foo()
{
mWhatever = new Whatever();
mFine = new Fine();
}
// from IWhatever
void Kick()
{
mWhatever.Kick();
}
// from IFine
void Punch()
{
mFine.Punch();
}
}
私はそれを正しくやっていますか?より良い方法はありますか?