Подобный подход позволяет эффективно разделять объекты внутри системы, не беспокоясь, что объект будет уничтожен, пока он кем-либо используется, или что он не будет уничтожен никогда.

Этот подход активно применяется в вводимых далее контейнерных классах Array, Set и Dictionary. Основным его преимуществом является то, что пользователю не нужно все время помнить, работает ли с этим объектом кто-то еще или же его можно удалить. Вместо этого, когда в конкретном месте объект становится больше не нужен, у него просто вызывается метол release. Удаление объекта произойдет лишь в том случае, если этот объек! никем больше не используется.

Иногда бывает удобно не удалять объект сразу, а лишь пометить его как больше не нужный и передать дальше. Если там он понадобится, у него будет вызван метод retain и он будет сохранен. Но при этом непосредственно вызывать метод release и после этого передавать указатель на данный объект нельзя - в результате этого объект может быть просто удален к моменту его передачи и указатель будет указывать на уже разрушенный объект

Объектная моде ti> ()с ночные к /</<< ы

Именно для этого и служит метод autorelcase. Он не удаляем объект, а лини, помещает ссылку на него в объект класса AutoieleasePool, где хранящей ссылки на объекты, которые помечены для удаления. Время от времени (например, в начале очередного цикла обработки сообщения) всем объектам us этого списка посылается сообщение release.

Метод init служит для осуществления инициализации объекта, которая не может быть выполнена в конструкторе класса (например, потому, что обращается к виртуальным методам, которые определяются в унаследованных классах и недоступны в моменты вызова конструктора базового класса).

Метод isOk служит для проверки состояния объекта и возвращает значение true, если объект пригоден для использования.

Метод compare служит для сравнения двух объектов и переопределяется в подклассах.

Метод hash ставит в соответствие объекту некоторое число, которое может в дальнейшем использоваться в хеш-таблицах и для быстрого сравнения объектов.


⇐ Предыдущая| |Следующая ⇒