我需要一种描述两个物体之间关系的方法,我不确定我有哪些选择。
我有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;}
甚至将硬/软依赖存储在单独的集合中,但我想知道是否有更好的方法。
答案 0 :(得分:1)
您是否考虑过更改它以便依赖性知道资源和硬/软性质?
public interface IDependency
{
IResource Resource { get; }
DependencyType Type { get; }
}
public interface IResource
{
IEnumerable<IDependency> Dependencies { get; set; }
}