Глобальные идентификаторы за пазухой
От: Сергей Выдров  
Дата: 15.09.04 08:36
Оценка:
То ли сюда, то ли в этюды...

Могу предложить интересную головоломку. Сам над ней думаю, правда, в фоновом режиме. Вполне возможно, что это от невежества, тогда буду рад просветиться.

Имеется большая система обработки данных. В нее входит БД (хранилище) и целая куча редакторов, визуализаторов и сервисов. Одна и та же сущность описывается сотней-другой свойств. Скажем, объект можно рассматривать как геометрическоое тело в проекции (двухмерная визуализация) — тогда нас интересуют только его имя, и пара координат. В пространстве нужна третья координата. Для просмотра физических свойств — соответственно, физические свойства. Чтобы все его свойства менять безбоязненно, даже имя, каждый объект описывается GUID'ом. Если объект был изменен в одном из модулей, событие с его GUID'ом прокатывается по всей системе, каждый модуль ищет в массиве объектов (а они описаны-то по-разному!) и может обработать без проблем. Идиллия.

Проблема оказалась в "пазухах".

Пазуха — это, например, жесткий диск, клипборд, и процесс "перемещения" с нажатым контролом (копирование). Скажем, скопировали мы объект в буфер, вставили обратно, получилась копия. Это значит, что при копировании в буфер надо копировать не все свойства — GUID надо создавать заново. Как-никак, происходит генерация нового объекта. То же самое с драг-дропным копированием. А вот с хардом возникает проблема.

Допустим, мы экспортировали объект во внешний файл. Умница-экспорт понимает, что происходит копирование объекта и при экспорте подменяет GUID. Пользователь импортирует объект обратно, GUID у него уже обновленный, все нормально. Как бы не так! Пока объект хранится в виде файла, пользователь вручную дерет с него десяток копий и импортирует их одним движением. Ступор. Any ideas?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.