0

次のような例を見てきました。

public class Customer
{
 public int ID { get; set; }
 public string FirstName { get; set; }
 public string LastName { get; set; }
 public Address Address { get; set; }
}
public class Address
{
 public string Street { get; set; }
 public string City { get; set; }
}

そして、私はまだ次のものにどのような利点があるのか​​ わかりません。

public class Customer
{
 public int ID { get; set; }
 public string FirstName { get; set; }
 public string LastName { get; set; }
 public string Street { get; set; }
 public string City { get; set; } 
}

それについてのアイデアはありますか?

乾杯。

4

2 に答える 2

0

あなたが示した例は、ネストされたクラスではなく、構成によって別のクラスを利用するプロパティです。

あなたの例の主な利点は、 が別のエンティティ (リファクタリングされたもの) であり、Address特定の住所のさまざまな分類を示すために使用できるCustomerことです。Home AddressBusiness AddressCorporate AddressAddress

別のクラスを持たずに上記のタイプの分類を達成することは、Addressそうでなければ困難であり、それがAddress別のクラスとして取り出される1つの理由です。

例として、Customerクラスを次のように変更して、利点の 1 つを示すことができます。

public class Customer
{
     public int ID { get; set; }
     public string FirstName { get; set; }
     public string LastName { get; set; }
     public Address HomeAddress { get; set; }
     public Address BusinessAddress { get; set; }
     public Address CorporateAddress { get; set; }
}

上記の例のように、Addressエンティティが後で必要とするZipCode場合は、3 つの郵便番号 (自宅用に 1 つ、ビジネス用に 1 つ、企業用に 1 つ) を追加する必要はありません。ZipCodeプロパティをクラスに追加するだけで、Addressクラス内の 3 つのプロパティは、クラスを変更Customerせずに新しいプロパティを利用します。Customer

于 2013-09-02T11:28:01.413 に答える