Я работаю над проблемой бизнеса в C # .NET. У меня есть два класса, названных C и W, которые будут созданы независимо в разное время.
Объект класса C должен содержать ссылки на 0 ... n объектов класса W, т.е. объект C может содержать до n объектов W.
Каждый объект W должен содержать ссылку ровно на 1 объект класса C, то есть объект W содержится в одном объекте C.
Объект класса C обычно создается первым. Позже его содержимое W обнаруживается и создается. На этом более позднем этапе мне нужно сопоставить объекты C и W друг с другом.
Что такое хороший шаблон дизайна для этого? У меня действительно есть случаи, когда у меня есть три или четыре класса, но мы можем поговорить о двух классах, чтобы упростить это.
Я думал о чем-то простом, как:
class C
{
public List<W> contentsW;
}
class W
{
public C containerC;
}
На данный момент это будет работать, но я могу предвидеть, что придется написать изрядное количество кода, чтобы отслеживать все ссылки и их достоверность. Я хотел бы реализовать код в будущем, чтобы делать поверхностные обновления только контейнера и глубокие обновления всех ссылочных классов. Есть ли другие подходы и в чем их преимущества?
Изменить на 11/3:
Спасибо всем за хорошие ответы и хорошее обсуждение. Я, наконец, выбрал ответ Jop, потому что это было ближе всего к тому, что я хотел сделать, но другие ответы также помогли. Еще раз спасибо!