描述在代码中使用的对象之间的关系

本文关键字:对象 之间 关系 代码 描述 | 更新日期: 2023-09-27 18:07:09

我需要一种描述两个对象之间关系的方法,但我不确定我有什么选择。

我有一个IEnumerable<IResource>,每个IResource都有一个依赖的IEnumerable<IResource>属性。

public interface IResource
{
 IEnumerable<IResource> DependentResources{get;set;}
}

每个资源可以有零个或多个依赖资源,资源与其依赖资源之间的关系可以是硬关系,也可以是软关系。

我有点不确定在哪里存储关于这种硬/软关系的信息。在资源中存储关系类型似乎不合适。

一些可能有用的进一步信息:

我从所有可能资源的IEnumerable<IResource>开始。此集合中的项不知道它们与其他资源的关系。

当用户请求给定资源的依赖资源时,一个web服务调用将返回一组Guids。从这个向导列表中,我返回有问题的资源及其从原始AllResources集合加载的依赖项。

我可以在资源上有一个属性,比如:
DependencyTypeEnum.DependencyType ContextualRelationship{get;set;}

或者甚至将硬/软依赖项存储在单独的集合中,但我想知道是否有更好的方法来实现这一点。

描述在代码中使用的对象之间的关系

您是否考虑过更改它,以便依赖项知道资源和硬/软性质?

public interface IDependency
{
    IResource Resource { get; }
    DependencyType Type { get; }
}
public interface IResource
{
    IEnumerable<IDependency> Dependencies { get; set; }
}