1

以下に、Web サービス応答メッセージにマップするように記述されたクラスがあります。

public class someclassA
{
   public int properyA {get;set;}
   public int properyB {get;set;}
   public int properyC {get;set;}
   public int properyD {get;set;}
}

public class someclassB
{
   public int properyX {get;set;}
   public int properyY {get;set;}
   public int properyZ {get;set;}
}

ここでの要件は、someClassA が someClassB のいくつかのプロパティを使用し、さらに 3 つの計算されたプロパティ (propertyE、propertyF、propertyG など) を追加することです。

パターンに関する質問は、someClassA のすべてのプロパティと 3 つの新しいプロパティを持つように完全に異なる someClassAB を作成する必要があるか、最初にこれらすべての追加フィールドを使用して someClassA を構築する必要があるかということです。

乾杯。

4

1 に答える 1

2

ここで覚えておきたいルールがあります。A が B である場合は、継承を使用します。それ以外の場合は、それらを別のオブジェクトにします。継承は、サブクラスが本当に親クラスのより具体的な形式である場合にのみ使用する必要があります。

メンテナンスを考えます。将来、オブジェクトがますます発散し始めるとどうなりますか? 現在、特定のコンテキストでプロパティの 20% しか意味をなさないタイプが使用されています。

言うまでもなく、無関係なエンティティ間に明確な境界があると、コードが読みやすくなります。継承を考えるたびに、コードを読むときに把握しなければならない "コンテキスト" が 1 つ増えます。オブジェクトを混在させると (率直に言って怠惰から)、コードの可読性が損なわれます。

于 2012-05-11T13:57:35.710 に答える