我有几个接口,IOrganisations和IPeople。
如果我想返回与组织关联的人员列表,我在哪个界面创建?
结果基于组织,但我正在返回人员列表
答案 0 :(得分:6)
在IOrganisation
上执行此操作(并将IPeople
作为返回类型)。
这样的事情:
interface IOrganisation {
IList<IPeople> GetPeople();
}
这是因为组织的人员是组织的财产,而不是人民的财产。
答案 1 :(得分:6)
这听起来应该在IOrganization
上 - 毕竟这就是你所说的。您拥有的是组织,您想要人员列表 - 您不能从人员列表中启动,因此 >必须成为IOrganization
界面的一部分。
我觉得开始使用复数接口名称很奇怪 - 我希望单个组织可以IOrganization
,而单个人可以IPerson
。
public interface IOrganization {
IList<IPerson> GetPeople();
}
答案 2 :(得分:1)
首先,您的应该可能没有多元化的接口名称。所以称他们为IOrganization和IPerson然后在你的IOrganisation
接口上你可能有一个叫做的方法:
IEnumerable<IPerson> GetPeople()
答案 3 :(得分:0)
哪个属于哪个?
在我看来,iOrganisation.People
将是属于该组织的人员列表(是您的“IPeople”界面,代表一个人或一个人的列表?)。同样,您可能会IPeople.Organisations
列出一个人所属的所有组织。两者都可能有不同的底层机制 - 可能调用相同的查找表 - 对调用代码的人来说无关紧要。
答案 4 :(得分:0)
如果您将某个组织视为包含人员的集合,那么将其放在IOrganization
中是很直观的。它看起来像这样:
interface IOrganization
{
IList<IPeople> Members { get; }
}