у списка конкретной сущности есть инвариант(напр.все orders должны начинаться на букву 'А')
2) список маленький(или имеет ограничение на размер(п.1))
Тогда тебе по идее тебе от orders нужны только названия
критерий один - ВСЕ данные внутри должны ВЛИЯТЬ на инвариант ВСЕХ операций который объект реализует.
А. Теперь понятно. А если это кейсы для которых нужны данные которые не хранятся в сущности но относятся к ней? Где размещать такую логику? Допустим, появляется Манагер который может забрать товар и передать его другому покупателю. Я могу эту логику разместить в любой сущности которая во входных данных 1) manager.move(order, customer from, customer to) 2) order.move(manager, customer from, customer to) 3) customer...
у тебя есть не только сущности твоей орм для такого.
Не надо логику в сущности. Если по простому)
не надо сущности.
чуть опасная формулировка потому что для многих это "сущность заказа это просто data bag с геттерами и сетерами". я же чуть про более агрессивные способы декомпозиции топлю, в этом случае сущности просто становятся меньше - не product а product id + product details + product availability + product price например. В этом случае логика будет в сущностях но сами они будут ооочень маленькими и точечными
Обсуждают сегодня