对业务层次结构建模

本文关键字:建模 层次结构 业务 | 更新日期: 2023-09-27 18:05:57

我有一个仪表板应用程序,用户可以在'业务实体'的层次结构中上下导航,并查看该实体的数据。

层次结构如下

       Company
    |           |
 Office DepartmentGroup
               |
    |   Department
          |
    Section
        |
    Employee

如何使用对象最好地建模。我有一个想法,我将有一个IEntity接口,如:

public interface IEntity
{
    int EntityKey { get; set; }
    string EntityCode { get; set; }
    string EntityName { get; set; }
    List<IEntity> Children { get; set; }
    List<IEntity> Parents { get; set; }
}

我应该如何建模我的具体类来强加这个结构?

对业务层次结构建模

我担心的是,引用IEntity会取消引用具体类型列表的好处。如果一个部门只能包含section,那么我将有一个属性是IList<Department>(或IList<IDepartment>,如果你是害羞的承诺)。

我认为,开放和通用模型(IList<IEntity>)存在更多问题,这些问题不一定值得它提供的灵活性带来的好处。