|
Материалы книги получены с http://www.itlibitum.ru/
Концепции «матери всех объектов»
Начнем с решений, построенных на идее «матери всех объектов» (Mother Of All Objects, MOAO). Чтобы не возвращать итератор для VoidPtr, виртуальная функция может возвращать итератор для void*& или MOAO*&. Выглядит вполне разумно, пока вы не остановитесь и спросите себя - а почему мы отказались от «дескрипторов повсюду»? Скорее всего, из-за того, что не могли в достаточной степени управлять ими. Возможно, вы унаследовали (шутка из области С++) библиотеку классов, созданную кем-то другим, и не захотели переписывать ее по принципу «дескрипторы, одни дескрипторы и ничего, кроме дескрипторов». Может, вы считаете, что ваши клиенты и коллеги попросту не поймут столь сложной архитектуры. А может, вам не хочется превращать С++ в некое подобие SmallTalk, хотя бы в области межобъектных ссылок. Какими бы причинами вы ни руководствовались, нелогично отказываться от «дескрипторов повсюду» и оставлять другие требования - производить все от общего базового класса, перебирать указатели и плясать вокруг адресов переменных и базовых классов. Давайте-ка лучше займемся тем, что достойно настоящих программистов.
Материал, изложенный далее, делится на четыре темы:
1. Организация памяти.
2. Поиск периметра.
3. Перебор внутри периметра.
4. Сборка мусора.
Назад Содержание Далее
|