0

私のプログラムでは、IInterface1、IInterface2、IInterface3、IInterface4、IInterface5 のようないくつかのインターフェイスを定義しました。具体的なクラスで 5 つのインターフェイスすべてを実装する必要がある場合、次のようにこれらのインターフェイスを直接実装しますか?

public class EntityClass: IInterface1,IInterface2, *** IInterface5
{
}

または、最初にそれらのインターフェイスを継承するインターフェイスを作成してから、そのインターフェイスを実装しますか?

public interface IEntity: IInterface1,IInterface2, *** IInterface5
{
}

public class EntityClass:IEntity
{
}
4

3 に答える 3

1

どちらのアプローチも、優れた実践の文脈では有効です。ただし、それは純粋に設計に依存します。継承にアプローチする最善の方法は、継承しているものについて話し合って、それが理にかなっていることを確認することです。

たとえば、「すべての EntityClass は IEntity ですか?」というのは本当かもしれません。ただし、「すべての EnetityClass は Interface1、AND Interface 2 などですか」と尋ねると、これは一部のインスタンスには当てはまり、他のインスタンスには当てはまらない可能性がありますが、すべて IEntity に実装されています。

多くのインターフェース実装を 1 つのインターフェースに集約する際の問題は、それ自体に多くのインターフェースを持つインターフェースからさらに多くのクラスを実装する場合であり、実装に必要なインターフェースがわずかしかない場合です。この場合、設計をやり直して、継承のツリーが理にかなっていることを確認してください。

于 2013-09-30T01:47:10.180 に答える