метода update?
думаю так и есть. Это ж не работа с БД напрямую, это абстракция. Есть просто коллекция объектов предметной области, достаём объект, меняем. Изменение стейта будет при вызове методов объекта. Когда есть апдейт в репозитории - это торчит деталь реализации не относящаяся к предметной области (сразу вопросики возникают - а что, я вот стейт объекта поменял, а он не поменялся? Надо ещё какой-то апдейт делать?)
Вот отсюда и вытекает мое недопонимание. На объекте-сущности вызвал метод, который изменил его состояние. Например: orders = OrderRepository(...) order = orders.findById(123) order.markFinished() Внутри order изменилась дата. Как репозиторий должен узнать об изменениях?
ну есть же всякие UOW-ы в ORM. Там будет метод, который позволит сбросить изменения в бд, но к репозиторию это по идее отношения не имеет
Ну да, выходит этот паттерн не подходит на случаи, когда состояние сущностей подвержено изменениям
не понял как ты этот вывод сделал
не объявляй. Меняй саму сущность
Ок, сущность поменял. Изменения остались в оперативке. Как изменения попадут в хранилище?
А, ну понятно, должен быть маппер сущности на представление в хранилище...
Представь, что у тебя нет внешнего хранилища. Зачем тогда нужен update? Чтобы в репозитории данные обновились? Ну так скорее всего там по ссылке передача, а значит данные в репозитории уже обновлены
вы подменили явное неявным оставив апдейт
оставив или убрав?
Обсуждают сегодня