Persistence Ignorance 는 단일 책임 원칙을 적용한 것으로, 실제로 Domain Objects ( DO )에는 지속성과 관련된 코드가 없어야하며 대신 도메인 논리 만 포함해야합니다.
a) 이것은 하위 계층 (즉, 영속 계층)과 접촉하는 코드 가 비즈니스 로직 계층의 다른 클래스 ( OC ) 에서 도메인 모델 외부에 존재한다는 것을 의미한다고 생각 합니까?
B)에서 내 가정하면 A)가 올바른지, 다음 DO 말, Customer
결코 같은 방법을 포함하지 GetCustomers
나 GetCustomerByID
?
c) a) 와 b)의 가정이 정확하고 Customer
도메인 객체가 그 속성 중 일부에 지연 로딩을 사용 한다고 가정하면 어떤 시점에서 Customer
내부 논리가 OC 와 접촉해야하며 , 이로 인해 지연된 데이터가 검색됩니다. 그러나 지연된 데이터를 받기 Customer
위해 OC 에 연락해야하는 경우 도메인 개체에 지속성과 관련된 논리가 포함되어 있지 않다고 주장 할 수 없습니다!
감사합니다
jkohlhepp에 응답
1) 나는 가정 OrderProvider
및 CustomerProvider
클래스는 비즈니스 로직 계층에 포함된다?
2) 나는 b)의 나의 가정 이 옳다는 답을 당신의 답에서 모은다 .
삼)
... 일부 개인 주문 필드가 채워 졌는지 또는 널인지 확인합니다. 그것이 null이라면 ...
그러나 내가 알 수있는 한, 도메인 코드가 개인 order
필드가 채워 졌는지 여부를 확인 하고, 그렇지 않으면 OrderProvider에 연락하면 이미 PI 원칙을 위반하고 있습니까 ?!