【发布时间】:2011-07-20 20:22:24
【问题描述】:
我有一些不同类型的公司可以访问我的网络应用程序,例如
不同类型的公司:
客户 供应商 代理
每个人在数据库中都有自己的表,链接到存储所有常见数据的主表 Company,例如地址、电话、电子邮件、TypeOfCompany 以及相关表(客户等)的 FK...
在整个应用程序中处理此 OO 的最佳方式是什么?
我目前正在做类似的事情:
public class CompanyDTO
{
public int Id {get;set;}
public string Name {get;set;}
public Address Address {get;set;}
public string Type {get;set;} //type of company
//etc...
}
然后从该类继承并添加其他属性,例如
public class ClientDTO : CompanyDTO
{
public string Key {get;set;}
public Address Billing {get;set;}
}
但是我有时会发现它有问题,例如
- 供应商用户想要访问:AllCompanies,- 显示所有公司的列表
- 然后供应商公司的用户想要查看特定公司的详细信息,现在如果是客户,我需要显示 ClientDTO 还是 SupplierDTO?在这种情况下,我想展示特定公司的详细信息
处理这个问题的最佳方法是什么?
例如GetCompanyByID(int companyid); 或 GetClientByID(int clientid); 在这两种情况下我应该返回什么类型的对象,假设我在这两种情况下都需要客户详细信息...
【问题讨论】:
标签: c# design-patterns domain-driven-design domain-model