как разработать шаблон Репозитория, чтобы быть легким переключателем к другому ORM позже?

Я предложил бы иметь фактические файлы проекта, проигнорированные системой управления версиями из-за оборотных сторон, которые Вы упомянули.

, Если бы существует достаточно последовательной информации в настройках проекта, что было бы преимущество от наличия ее доступно, скопировало бы ее в местоположение, которое Eclipse не рассматривает как особенный, и Вы будете иметь его в наличии для работы с на контроле (и скопировать назад туда, где Eclipse обратит внимание на нее). Существует достойный шанс, что разделение фактических файлов проекта от управляемых приведет к потере синхронизации, таким образом, я только предложил бы это, если существует ясное преимущество от имения в наличии настроек (или Вы уверены, что будете в состоянии сохранить их, синхронизировался)

5
задан Community 8 February 2017 в 14:15
поделиться

1 ответ

Inc Wall o 'Text

То, что вы делаете правильно, ваш код будет применяться к каждому репозиторию.

] Как вы заявили, цель шаблона репозитория состоит в том, чтобы вы могли менять способ доставки данных в ваше приложение без необходимости рефакторинга кода в вашем приложении (уровень UI / доставки).

Возьмем, к примеру, вы решаете перейти на Linq to Entities или ADO.NET.

Все, что вам нужно, - это написать код для ORM, который вы будете использовать (чтобы он унаследовал правильный интерфейс), а затем пусть ваш код будет использовать этот репозиторий. Конечно, вам нужно будет заменить все ссылки на старый репозиторий или переименовать / заменить ваши старые репозитории ORM, чтобы ваше приложение использовало правильные (если вы не re использует какой-то тип контейнера IoC, в котором вы должны указать, какой репозиторий передать).

Остальная часть вашего приложения будет продолжать работать правильно, поскольку все методы, которые вы использовали для получения / редактирования данных, будут возвращать правильные объекты.

С точки зрения непрофессионала, репозитории будут предоставлять вашему приложению необходимые данные таким же образом. Единственная разница заключается в том, как эти данные извлекаются из вашей базы данных (ADO.NET/Linq для чего-то и т. Д.)

Наследование ваших классов интерфейсов репозитория является жестким ограничением, гарантирующим, что они выводят данные единообразным образом, который согласуется в зависимости от того, как его использует ваше приложение.

Остальная часть вашего приложения будет продолжать работать правильно, поскольку все методы, которые вы использовали для получения / редактирования данных, будут возвращать правильные объекты.

С точки зрения непрофессионала, репозитории будут предоставлять вашему приложению необходимые данные таким же образом. Единственная разница заключается в том, как эти данные извлекаются из вашей базы данных (ADO.NET/Linq для чего-то и т. Д.)

Наследование ваших классов интерфейсов репозитория является жестким ограничением, гарантирующим, что они выводят данные единообразным образом, который согласуется в зависимости от того, как его использует ваше приложение.

Остальная часть вашего приложения будет продолжать работать правильно, поскольку все методы, которые вы использовали для получения / редактирования данных, будут возвращать правильные объекты.

С точки зрения непрофессионала, репозитории будут предоставлять вашему приложению необходимые данные таким же образом. Единственная разница заключается в том, как эти данные извлекаются из вашей базы данных (ADO.NET/Linq для чего-то и т. Д.)

Наследование ваших классов интерфейсов репозитория является жестким ограничением, гарантирующим, что они выводят данные единообразным образом, который согласуется в зависимости от того, как его использует ваше приложение.

3
ответ дан 15 December 2019 в 06:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: