代表组织成员的最佳实践

时间:2015-04-10 22:34:55

标签: c# oop modeling

使用面向对象方法的成员代表组织的最佳做法是什么?将成员作为集合存储在组织模型中会更好吗:

public class Organisation
{
    public Guid Id { get; set; }

    public ICollection<Person> Members { get; set; }

    // the rest of the code
}

或者最好不要将它们存储在组织内,而是在Person类中为组织引用,如下所示:

public class Organisation
{
    public Guid Id { get; set; }

    // the rest of the code
}

public class Person
{
    public ICollection<Organisation> OrganisationMemberships { get; set; }

    // the rest of the code
}

说到一种方法,它必须将两者深层链接在一起,这意味着该程序不仅仅会呈现一个组织或一个人,而是来自两者的信息。 比如说,一家公司的部门领导人数,其名称和员工总数。 该模型也针对相关组织,非常类似于军事单位和/或子公司的结构。

两种方式的性能影响是什么?一种方式明显优于另一种方式,还是归结为个人偏好?

1 个答案:

答案 0 :(得分:2)

由于这是N:M关系,它通常归结为实现细节......就像谁实际需要参考一样。

在双方拥有它的主要缺点是保持一致性 - 当你向组织添加/删除人员时,你还需要确保相反的链接也被添加/删除。