Как правильно реализовать иерархическую структуру объектов?
От: es3000  
Дата: 14.08.06 08:58
Оценка:
Напрмер, есть у меня объект "Фирма", он содержит объект "Отдел", а "Отдел" в свою очередь содержит объект "Сотрудник".
К объекту "Сотрудник" можно обратиться так:
Фирма.Отдел.Сотрудник
А теперь я хочу, чтобы для "Сотрудника" можно было узнать в каком "Отделе" на какой "Фирме" он работает, например:
лФирма = Сотрудник.Отдел.Фирма
Если попробовать это реализовать следующим образом:

public class Т_Фирма
{
    public Отдел;

    public Т_Фирма()
    {
        Отдел = new Т_Отдел();
        Отдел.Фирма = this;
    }
}

public class Т_Отдел
{
    public Фирма;
    public Сотрудник;

    public Т_Отдел()
    {
        Сотрудник = new Т_Сотрудник();
        Сотрудник.Отдел = this;
    }
}

public class Т_Сотрудник
{
    public Отдел;

    public Т_Сотрудник()
    {
    }
}


То естественно будут циклические ссылки и объект "Фирма" никогда не удалится из памяти:

лФирма = new Т_Фирма;
.....
лФирма = 0;


Что говорит теория на этот счет? как правильно реализовать такие связи между объектами?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.