в чем разница между прокси и шаблоном репозитория - PullRequest
0 голосов
/ 27 апреля 2020
Шаблон репозитория

, интенсивно используемый в Entity Framework, который является классом, имеет поле репозитория (обычно внедряемое DI), поэтому независимо от того, что вы сохраняете, удаляете, обновляете запись, вы позволяете экземпляру репозитория делать это как

_repository.delete("someID");

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

так в чем разница между прокси и шаблоном репозитория

Ответы [ 3 ]

1 голос
/ 27 апреля 2020

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

1 голос
/ 27 апреля 2020

Репозиторий Патерн - это разделение задач. У вас может быть несколько источников данных, таких как память, sql база данных, нет sql базы данных, веб-сервис ....

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

enter image description here

Прокси - это шаблон объекта. Entity Framework использует шаблон прокси для достижения некоторой дополнительной функциональности. Вы можете отключить его.

dbContext.Configuration.ProxyCreationEnabled = false;

Вы можете быть уверены, что объект, который вы получаете от EF, является прокси-объектом, полным кода. А твой new YOurEntity() мелкий без прокси.

0 голосов
/ 27 апреля 2020

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...