我有一个CarInfo
类,它保存着一辆车及其车主的信息.所有者可以是已知的客户(例如,我们可以查找它并填充Customer
类),或者我们只知道客户的名称(在这种情况下,我们不能填充Customer类).我有一个Blazor表单,它公开了carfo类.如何针对Customer信息成员设计这个类,它可以是Customer
,也可以只是名字和姓氏?
public CarInfo
{
public Guid Id { get; }
...
public Customer? { get; set; } // Either this member can be populated
public string? FirstName { get; set; } // or the First- and Last name members.
public string? LastName { get; set; }
...
}
处理这一问题的最佳设计是什么?我是否应该将Customer和名字和姓氏分解到一个新的类中,例如CustomerInfo
,并在那里处理这种多态?
public CustomerInfo
{
public Customer? { get; private set; }
public string? FirstName { get; private set; }
public string? LastName { get; private set; }
public CustomerInfo(Customer customer) => Customer = customer;
public CustomerInfo(string firstName, string lastName)
{
FirstName = firstName;
LastName = lastName;
}
}
然后像这样使用它?
public CarInfo
{
public Guid Id { get; }
...
public CustomerInfo { get; set; }
...
}
我有点纠结于在这里应该参考什么是最好的实践或模式.