Напрмер, есть у меня объект "Фирма", он содержит объект "Отдел", а "Отдел" в свою очередь содержит объект "Сотрудник".
К объекту "Сотрудник" можно обратиться так:
Фирма.Отдел.Сотрудник
А теперь я хочу, чтобы для "Сотрудника" можно было узнать в каком "Отделе" на какой "Фирме" он работает, например:
лФирма = Сотрудник.Отдел.Фирма
Если попробовать это реализовать следующим образом:
public class Т_Фирма
{
public Отдел;
public Т_Фирма()
{
Отдел = new Т_Отдел();
Отдел.Фирма = this;
}
}
public class Т_Отдел
{
public Фирма;
public Сотрудник;
public Т_Отдел()
{
Сотрудник = new Т_Сотрудник();
Сотрудник.Отдел = this;
}
}
public class Т_Сотрудник
{
public Отдел;
public Т_Сотрудник()
{
}
}
То естественно будут циклические ссылки и объект "Фирма" никогда не удалится из памяти:
лФирма = new Т_Фирма;
.....
лФирма = 0;
Что говорит теория на этот счет? как правильно реализовать такие связи между объектами?