Skip to content
Sergey Yermochenko edited this page May 12, 2024 · 1 revision

Практическое задание №2

Цель задания: понять, что такое ссылка на объект и как их обрабатывает Garbage Collector

Дан репозиторий с исходным кодом некоторой программы.

В этой программе смоделирован процесс создания некоторой амуниции игрового персонажа (во многих играх жанра RPG присутствует такое понятие как Crafting, позволяющий игроку создавать предметы из собранных ранее материалов).

Структура классов, созданных для моделирования процесса, содержит ошибки с точки зрения объектно-ориентированного программирования. На последующих занятиях эти ошибки необходимо будет найти и исправить. На данном этапе необходимо проанализировать использование ссылок на объекты классов и посмотреть, какие объекты не смогут быть удалены механизмом сборки мусора, если он будет запущен в момент, отмеченный в коде с помощью специального TODO-комментария.

Важно! Считать, что механизм сборки мусора срабатывает, когда выполнение функции craft() ещё не завершено, т.е. все её локальные переменные ещё присутствуют в памяти.

Задание

Создать fork указанного выше репозитория, в этой копии с помощью комментария и файла README.md описать результат анализа и выявленные проблемы, а также, по возможности, исправить выявленные проблемы. Доступ к копии репозитория предоставить преподавателю.

Clone this wiki locally