【发布时间】:2011-05-26 16:17:52
【问题描述】:
从这个问题开始Good class design by example我有一个后续问题。
我想创建一些属于其他对象的集合。回顾一下,我有一个Person 课程,我希望Person 能够拥有一个或多个Addresses。所以我想我会创建一个Address 类和一个Addresses 集合。说得通?到目前为止,这是我的代码
class Person
{
public Person(int SSN, string firstName, string lastName)
{
this.SSN = SSN;
FirstName = firstName;
LastName = lastName;
}
public int SSN { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
class Address
{
public Address(string line1, string postCode)
{
Line1 = line1;
PostCode = postCode;
}
public int ID { get; set; }
public string Line1 { get; set; }
public string PostCode { get; set; }
}
class Addresses : System.Collections.CollectionBase
{
public int Person { get; set; } // should this be of type Person?
public void Add(Address addy)
{
List.Add(addy);
}
public Address Item(int Index)
{
return (Address)List[Index];
}
public void Remove(int index)
{
List.RemoveAt(index);
}
}
如何将多个地址与一个人相关联?我想在Main做这样的事情:
Person p = new Person(123,"Marilyn","Manson");
Address a = new Address("Somewhere", "blahblah");
p.Addresses.Add(a);
然后我希望能够将地址保存到数据库中。我应该使用Address.Save() 还是Addresses.Save()(或其他方式)?
我将如何更改我的代码来实现它?感谢观看。
【问题讨论】:
-
一个人有一个地址。我不知道一个地址应该有一个人。
-
使用泛型来避免痛苦