【发布时间】:2009-10-29 06:11:09
【问题描述】:
假设我有一个名为:租户和客户的抽象类。在这种情况下,租户就像多租户应用程序模型的应用程序所有者
这两个类之间的关系是多对一的关系。
public abstract class Tenant
{
protected Int32 id;
protected String name;
public Int32 ID { get; set; }
public String Name { get; set; }
public abstract bool Add();
public abstract bool Update();
public abstract bool Delete();
}
public class ApplicationTenant: Tenant
{
public ApplicationTenant() { }
public override Int64 ID
{
get { return id; }
set { id = value; }
}
public override String Name
{
get { return name; }
set { name= value; }
}
...
}
public abstract class Customer
{
protected Int32 id;
protected String name;
protected Tenant tenant;
public Int32 ID { get; set; }
public String Name { get; set; }
public Tenant Tenant { get; set; }
public abstract bool Add();
public abstract bool Update();
public abstract bool Delete();
}
public class CorporateCustomer : Customer
{
public CorporateCustomer () { }
public override Int64 ID
{
get { return id; }
set { id = value; }
}
public override String Name
{
get { return name; }
set { name= value; }
}
public override Tenant Tenant
{
get { return tenant; }
set { tenant= value; }
}
...
}
这种设计的问题在于,当你这样做时:
CorporateCustomer customer = new CorporateCustomer();
customer.Tenant.ID = xx
在这种情况下,租户总是引用公共租户 Tenant { get;放; } 这实际上是我想要的是来自 ApplicationTenant 的那个,而不是一个抽象的。
如果它与其他对象相关,我应该删除此类 Customer 中的任何抽象吗?你的想法是什么?
【问题讨论】:
标签: c#-2.0