Также, как и обычные записи Паскаля, размещаемые в динами-
чески распределяемой области памяти, объекты могут удаляться про-
цедурой Disрose, если они больше не нужны:
Disрose (P);
Однако, при избавлении от ненужного объекта может понадо-
биться нечто большее, чем простое освобождение занимаемой им ди-
намической памяти. Объект может содержать указатели на динамичес-
кие структуры или объекты, которые нужно освободить или очистить
в определенном порядке, особенно если вы оперируете сложной дина-
мической структурой данных. Что бы ни нужно было сделать для
очистки динамического объекта в каком-либо порядке, это все долж-
но быть объединено в один метод таким образом, чтобы объект мог
быть уничтожен с помощью одного вызова метода:
MyComрlexObject.Done;
Метод Done должен инкапсулировать все детали очистки своего
объекта, а также всех структур данных и вложенных объектов.
Примечание: Мы советуем использовать для удаления ме-
тодов, работающих с объектами, которые более не нужны, ис-
пользовать идентификатор Done.
Допустимо и часто бывает полезно определять несколько мето-
дов очистки для данного типа объекта. В зависимости от того, как
они размещены или используются, или в зависимости от состояния и
режима объекта на момент очистки, сложные объекты могут потребо-
вать очистки несколькими различными путями