Показать сообщение отдельно
Старый 27.06.2010, 16:21   #2
Samodelkin
Мастер
 
Регистрация: 12.01.2009
Сообщений: 983
Написано 390 полезных сообщений
(для 634 пользователей)
Ответ: Описатели (Descriptors)

А можно попробовать объединить Описатель и класс IObject. Если к CObject применить умные указатели (которые считают количество ссылок на объект), то CObject достаточно создать один раз а IObject будет и как Описатель и как Указатель - то есть можно работать с CObject через разные Описатели. Если у Object много общих ресурсов но по разному параметризированных то это сильно сократит расходы памяти. К тому же Object будет всегда гарантировано удаляться если даже заранее не известна последовательность вызовов delete из разных потоков.

* инвариант параметров. например ширина окна не может быть больше ширины дисплея, если только окно не фейковое. Правда его прийдется в конструкторе класса один фиг проверять снова, так как члены данных придется делать открытыми, чтобы конструкторы объектов имели к ним доступ. ненадежно.
В том случае что я описал в функцию создания объекта окна можно передать Указатель-Описатель объекта дисплея (хотя скорей всего данные дисплея хранятся в объекте конфиге или в чем то подобном) и тогда Описатель окна обращатеся к параметрам Описателя дисплея и корректно их читает.
(Offline)
 
Ответить с цитированием