Когда должен переходные свойства в CoreData быть включенным в объектную модель?

C# имеет еще несколько функций, чем Java. Возьмите делегатов, например: Много очень простых приложений C# используют делегатов, в то время как люди Java полагают, что шаблон "наблюдатель" был достаточен. Так, для инструмента для преобразования приложения C#, которое использует делегатов, это должно было бы перевести структуру из использования делегатов в реализации шаблона "наблюдатель". Другой проблемой является то, что методы C# не являются виртуальными по умолчанию, в то время как методы Java. Кроме того, Java не имеет способа сделать методы не виртуальными. Это создает другую проблему: приложение в C# могло усилить не виртуальное поведение метода через полиморфизм способом, не переводит непосредственно в Java. Если Вы будете озираться, то Вы, вероятно, найдете, что существует много инструментов для преобразования Java в C#, так как это - более простой язык (не горите меня, я не сказал хуже, я сказал более простой); однако, Вы найдете очень немногих, если любые достойные инструменты, которые преобразовывают C# в Java.

я рекомендовал бы изменить Ваш подход к преобразованию от Java до C#, поскольку это создаст меньше головных болей в конечном счете. Db4Objects недавно выпустил их внутренний инструмент, который они используют для преобразования Db4o в C# общественности. Это называют, Увеличивают резкость. Если Вы регистрируетесь в их сайте, можно просмотреть эту ссылку с инструкциями относительно того, как использовать, Увеличьте резкость: http://developer.db4o.com/Resources/view.aspx/Reference/Sharpen/How_To_Setup_Sharpen

(я был зарегистрирован в них некоторое время и они хороши о не спаме)

9
задан Felix Lamouroux 14 November 2009 в 13:07
поделиться

1 ответ

Из Руководства по программированию основных данных :

Если неподдерживаемый атрибут является объектом, то в модели управляемого объекта вы указываете его тип как неопределенный, и что это преходяще. Когда вы реализуете настраиваемый класс сущности, нет необходимости добавлять переменную экземпляра для атрибута - вы можете использовать частное внутреннее хранилище управляемого объекта. Следует отметить, что реализации, описанные ниже, заключаются в том, что они кэшируют переходное значение. Это делает доступ к значению более эффективным - это также необходимо для управления изменениями. Если вы определяете пользовательские переменные экземпляра, вам следует очистить эти переменные в didTurnIntoFault, а не освобождать или финализировать.

Я понимаю это как «удобство» и «сохранение всех ваших атрибутов в одном месте - модели управляемых объектов».

Что касается управления версиями MOM, в Руководстве по управлению версиями и миграции данных Core Data говорится:

Взгляд Core Data на управление версиями состоит в том, что их интересуют только те особенности модели, которые влияют на сохраняемость. 12144] Однако это не проясняет свою позицию в отношении переходных свойств. Фактически, второй пункт, поясняющий этот абзац, звучит почти как противоречие. Быстрый тест (новый проект с простой сущностью "Foo" с атрибутом "name", сохранение файла с несколькими foo, добавление временного свойства, повторный запуск и загрузка всех файлов foo, добавление нового foo, сохранение, закрытие, повторно открыть) показывает, что временные свойства фактически не учитываются системой управления версиями.

Взгляд Core Data на управление версиями состоит в том, что их интересуют только те особенности модели, которые влияют на сохраняемость.

Однако он не проясняет свою позицию в отношении переходных свойств. Фактически, второй пункт, поясняющий этот абзац, звучит почти как противоречие. Быстрый тест (новый проект с простой сущностью "Foo" с атрибутом "name", сохранение файла с несколькими foo, добавление временного свойства, повторный запуск и загрузка всех файлов foo, добавление нового foo, сохранение, закрытие, повторно открыть) показывает, что временные свойства фактически не учитываются системой управления версиями.

Взгляд Core Data на управление версиями состоит в том, что их интересуют только те особенности модели, которые влияют на сохраняемость.

Однако он не проясняет свою позицию в отношении переходных свойств. Фактически, второй пункт, поясняющий этот абзац, звучит почти как противоречие. Быстрый тест (новый проект с простой сущностью "Foo" с атрибутом "name", сохранение файла с несколькими foo, добавление временного свойства, повторный запуск и загрузка всех файлов foo, добавление нового foo, сохранение, закрытие, повторно открыть) показывает, что временные свойства фактически не учитываются системой управления версиями.

Фактически, второй пункт, поясняющий этот абзац, звучит почти как противоречие. Быстрый тест (новый проект с простой сущностью "Foo" с атрибутом "name", сохранение файла с несколькими foo, добавление временного свойства, повторный запуск и загрузка всех файлов foo, добавление нового foo, сохранение, закрытие, повторно открыть) показывает, что временные свойства фактически не учитываются системой управления версиями.

Фактически, второй пункт, поясняющий этот абзац, звучит почти как противоречие. Быстрый тест (новый проект с простой сущностью "Foo" с атрибутом "name", сохранение файла с несколькими foo, добавление временного свойства, повторный запуск и загрузка всех файлов foo, добавление нового foo, сохранение, закрытие, повторно открыть) показывает, что временные свойства фактически не учитываются системой управления версиями.

6
ответ дан 4 December 2019 в 23:39
поделиться