描述用于代码的对象之间的关系

时间:2011-09-01 09:22:51

标签: c# asp.net-mvc asp.net-mvc-3 c#-4.0

我需要一种描述两个物体之间关系的方法,我不确定我有哪些选择。

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

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

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

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

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

我最初使用IEnumerable<IResource>所有可能的资源开始。此集合中的项目无法了解它们与其他资源的关系。

当用户请求给定资源的依赖资源时,将进行Web服务调用以返回Guids集合。从这个guid列表中,我返回有问题的资源,其中包含从原始AllResources集合加载的dependents。

我可以在资源上拥有一个属性,例如:

DependencyTypeEnum.DependencyType ContextualRelationship{get;set;}

甚至将硬/软依赖存储在单独的集合中,但我想知道是否有更好的方法。

1 个答案:

答案 0 :(得分:1)

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

public interface IDependency
{
    IResource Resource { get; }
    DependencyType Type { get; }
}

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