пример объединения, агрегации и композиции - PullRequest
0 голосов
/ 23 февраля 2012

ассоциация, агрегация и состав

Я хочу получить иллюстрацию для вышеупомянутых трех простых классов.Я много читаю из интернета.Вывод следующий:

В агрегации люди говорят:

"Класс A содержит коллекцию другого класса (скажем, B), и если A будет уничтожен, это не повлияет на его дочерний элемент, которыйбыть уничтоженным. "Как это возможно, если один объект уничтожен, но его свойство все еще может существовать или что они подразумевают под этим (я что-то неправильно понимаю)

Class A
{
List<B> lst;
}

Class B
{

}

1 Ответ

2 голосов
/ 23 февраля 2012

Рассмотрим следующие классы,

class Student
{
    public string Id { get; set; }
    public string Name { get; set; }
}

class Department
{
    public IList<Student> Students { get; set; }

    public void AddStudent(Student student)
    {
        //...
    }

    public void RemoveStudent(Student student)
    {
        //...
    }
}

Если вы хотите добавить студента на кафедру, вы звоните AddStudent() и передаете ссылку экземпляра класса Student (обратите внимание, что ссылка передана). Поэтому, когда экземпляр отдела уничтожается (например, null), свойство Students этого экземпляра Department больше не доступно, но экземпляры Student, которые использовались для заполнения этого списка, остаются не уничтожен Следовательно, свойство, в этом случае экземпляр Student все еще может существовать.

Дополнительная информация

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...