Название: Ссылка в постороннем файле Отправлено: Igors от Сентябрь 25, 2015, 11:50 Добрый день
Есть объект класса A который может иметь любое число объектов класса B. При (де)сериализации A он сериализует также и всех своих B. Пользователь свободно добавляет/удаляет/редактирует B принадлежащих A. И вот появился "файл расчетов" который приложение должно писать/читать. Никакого отношения к сериализации он не имеет, сами объекты в нем не хранятся. С точки зрения пользователя - открыл окно объекта А и выбрал в нем какие-то B - нажал бубочку, расчет выполнен (может длиться любое время) и сохранен в файле - теперь результатами расчета можно пользоваться. При этом должны задействоваться те самые B что были выбраны для расчета Каким образом идентифицировать B в файле учитывая что список B в любое время может быть изменен юзером? Спасибо Название: Re: Ссылка в постороннем файле Отправлено: qate от Сентябрь 25, 2015, 13:34 Каким образом идентифицировать B в файле учитывая что список B в любое время может быть изменен юзером? UUID ? Название: Re: Ссылка в постороннем файле Отправлено: Igors от Сентябрь 25, 2015, 14:24 Каким образом идентифицировать B в файле учитывая что список B в любое время может быть изменен юзером? UUID ? Название: Re: Ссылка в постороннем файле Отправлено: qate от Сентябрь 25, 2015, 14:41 как же можно ответить если задача выражена нечетко ? )
очень похоже что к исходной задача хочется прикрутить непредусмотренное ранее, значит будут костыли UUID будет определять объект B, если в нем нет уникальных полей Изменил B - новый UUID Название: Re: Ссылка в постороннем файле Отправлено: Old от Сентябрь 25, 2015, 15:04 А что должно произойти, если пользователь после сохранения расчета удалит из файла A все объекты B?
Название: Re: Ссылка в постороннем файле Отправлено: Igors от Сентябрь 26, 2015, 15:56 как же можно ответить если задача выражена нечетко ? ) А что тут "нечеткого"? Может только то что задача незнакома, как и "правельный ответ"? :) UUID будет определять объект B, если в нем нет уникальных полей Ну менять (редактировать поля B) можно как угодно, это ничего не меняет. Вариант с ID конечно напрашивается, но что делать еслиИзменил B - новый UUID 1) Объект A копируется (конечно со всеми принадлежащими ему B). Причем всяко-разно, напр через clipboard 2) Файл расчетов применяется к др объекту A (возможно копии "оригинала", но может и нет). Я понимаю что неизбежны случаи когда ссылка в файле становится невалидной. Это нормально, тогда код использования уже решит, продолжить ли работать без этой ссылки или выдать ошибку. Однако совершенно неясно, в плюс то ID или в минус |