212 похожих чатов

Подскажите, правильно ли я понимаю, что паттерн репозитория не предполагает

метода update?

12 ответов

9 просмотров

думаю так и есть. Это ж не работа с БД напрямую, это абстракция. Есть просто коллекция объектов предметной области, достаём объект, меняем. Изменение стейта будет при вызове методов объекта. Когда есть апдейт в репозитории - это торчит деталь реализации не относящаяся к предметной области (сразу вопросики возникают - а что, я вот стейт объекта поменял, а он не поменялся? Надо ещё какой-то апдейт делать?)

Gleb-Fault Автор вопроса
knopkod4v
думаю так и есть. Это ж не работа с БД напрямую, э...

Вот отсюда и вытекает мое недопонимание. На объекте-сущности вызвал метод, который изменил его состояние. Например: orders = OrderRepository(...) order = orders.findById(123) order.markFinished() Внутри order изменилась дата. Как репозиторий должен узнать об изменениях?

Gleb Fault
Вот отсюда и вытекает мое недопонимание. На объект...

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

Gleb-Fault Автор вопроса
knopkod4v
ну есть же всякие UOW-ы в ORM. Там будет метод, ко...

Ну да, выходит этот паттерн не подходит на случаи, когда состояние сущностей подвержено изменениям

не объявляй. Меняй саму сущность

Gleb-Fault Автор вопроса
knopkod4v
не объявляй. Меняй саму сущность

Ок, сущность поменял. Изменения остались в оперативке. Как изменения попадут в хранилище?

Gleb-Fault Автор вопроса
knopkod4v
this

А, ну понятно, должен быть маппер сущности на представление в хранилище...

Gleb Fault
Ок, сущность поменял. Изменения остались в операти...

Представь, что у тебя нет внешнего хранилища. Зачем тогда нужен update? Чтобы в репозитории данные обновились? Ну так скорее всего там по ссылке передача, а значит данные в репозитории уже обновлены

вы подменили явное неявным оставив апдейт

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

Обсуждают сегодня

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Почему стало ломаться на D11? "739002.86400000' is not a valid timestamp" function IncDateTime(aStamp:TTimeStamp;aKind:TTriggerKind;aInterval:Integer):TDateTime; //aStamp = 2...
Катерина Свиридова
8
Привет всем. Подскажите где можно посмотреть, какая версия электрон, поддерживает версии windows? Некий changelog. Мне бы желательно, поддержку 7,8,10... latest, как понимаю и...
Anonym Squad
21
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Есть ли смысл устраиваться на 1с ? Даст это плюс в дальнейшем трудоустройстве на php? Просто у меня в городе вакансий на пхп нету. Или лучше удаленно искать. Опыта работы нету...
Azamat
14
Не ну фпц - это уже просто троллинг какой-то. Элементарный код нельзя собрать. ЧЯДНТ? program Project1; {$mode delphi} uses SysUtils, Classes, Generics.Collections; var...
Peter
4
а где есть mysql cloud кроме яндекс-клауд?
Oleg Nosov
13
hi im a cs student. i need some advice from people who have enough experience in Embedded Software. I need to know whether this profession is suitable for me. I have watched s...
Sahand 🏔️
8
А кто-нибудь запихивал сборку перловых модулей/образов с perl приложениями в окружения без интернета (в специализированном CI/CD)? У меня сейчас есть ряд cpanfile, которые н...
Andrey Smirnov / 𝓪𝓵𝓵𝓽𝓮𝓻 /
14
Карта сайта