Описание отношений между объектами для использования в коде - PullRequest
0 голосов
/ 01 сентября 2011

Мне нужен способ описания отношений между двумя объектами, и я не уверен, какие у меня есть варианты.

У меня есть IEnumerable<IResource>, и у каждого IResource есть IEnumerable<IResource> свойство зависимых.

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

Каждый ресурс может иметь ноль или более зависимых ресурсов, и связь между ресурсом и его иждивенцами может быть жесткой или мягкой.

Я немного не уверен, где хранить информацию об этих жестких / мягких отношениях. Хранение типа отношения в ресурсе кажется неуместным.

Некоторая дополнительная информация, которая может быть полезна:

Я начну с IEnumerable<IResource> всех возможных ресурсов. Предметы в этой коллекции не знают своих отношений с другими ресурсами.

Когда пользователь запрашивает зависимые ресурсы данного ресурса, выполняется вызов веб-службы, возвращающий коллекцию руководств. Из этого списка руководств я возвращаю соответствующий ресурс с его зависимостями, загруженными из оригинальной коллекции AllResources.

У меня может быть свойство на ресурсе, например:

DependencyTypeEnum.DependencyType ContextualRelationship{get;set;}

или даже хранить жесткие / мягкие зависимости в отдельных коллекциях, но мне интересно, есть ли лучший подход к этому.

1 Ответ

1 голос
/ 01 сентября 2011

Рассматривали ли вы его изменение, чтобы зависимость знала ресурс и хард / софт природу?

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

public interface IResource
{
    IEnumerable<IDependency> Dependencies { get; set; }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...