Постійність Ігнорування - це застосування принципу єдиної відповідальності, що на практиці означає, що об’єкти домену ( DO ) не повинні містити код, пов'язаний із стійкістю, натомість вони повинні містити лише логіку домену.
а) Я припускаю, що це означає, що код, який контактує з нижчими шарами (тобто стійкими шарами), знаходиться поза доменною моделлю в інших класах ( OC ) рівня бізнес-логіки?
b) Якщо моє припущення під а) правильне, то DO , скажімо Customer
, ніколи не містить методів, таких як GetCustomers
або GetCustomerByID
?
c) Якщо мої припущення під пунктами a) і b) є правильними, і якщо припустити, що Customer
доменний об’єкт використовує ледачу завантаження для деяких своїх властивостей, то в певний момент Customer
внутрішня логіка повинна зв’язатися з OC , що, в свою чергу, отримує відкладені дані. Але якщо вам Customer
потрібно зв’язатися з OC, щоб отримати відкладені дані, то ми не можемо реально стверджувати, що об’єкти домену не містять логіки, пов'язаної зі стійкістю ?!
Дякую
ВІДПОВІДЬ ДО jkohlhepp
1) Я припускаю , що OrderProvider
і CustomerProvider
класи міститься в бізнес - логіці?
2) З вашої відповіді я розумію, що мої припущення під b) правильні?
3)
... Я хотів би перевірити, чи було заповнене якесь поле приватних замовлень чи воно недійсне. Якщо це нуль ...
Але наскільки я можу сказати, щойно доменний код повинен перевірити, чи order
було заселене приватне поле, і якщо його немає, звернувшись до OrderProvider, ми вже порушуємо принцип PI ?!