Я делаю растровый редактор, где документ состоит из нескольких слоев, где каждый слой представляет растровое изображение. Каждый слой должен иметь уникальный идентификатор по сравнению со всеми другими слоями, которые в настоящее время существуют в документе. Мне также нужно учитывать, что мне нужно сохранять и загружать документы вместе с идентификаторами слоев.
Я использую шаблон команды для хранения действий, выполняемых над документом, а уникальные идентификаторы используются для отслеживания того, на каком слое должно быть выполнено действие.
В данный момент я просто держу счетчик под названием X, когда создается новый слой, его ID устанавливается в X, а затем X увеличивается. При загрузке мне нужно убедиться, что X установлен на соответствующее число, чтобы новым слоям были присвоены уникальные идентификаторы, т. Е. Я мог бы сохранить значение X и восстановить его или установить X на основе наибольшего загруженного идентификатора слоя.
Учитывая, что X является 32-битным числом, пользователю нужно будет создать 4 294 967 296 слоев, работающих над одним файлом, прежде чем идентификаторы начнут использоваться повторно, что приведет к странному поведению. Должен ли я внедрить лучшую систему уникальных идентификаторов или это достаточно хорошо?
Я на Java, поэтому я мог бы использовать библиотеку UUID, которая создает 128-битные уникальные идентификаторы в соответствии со стандартным алгоритмом. Это кажется излишним.
Есть ли какой-то общий подход к такого рода проблеме?