DDD를 살펴보면서 우리는 데이터베이스를 우리가 운영하는 다양한 모델로 추상화하여 모델이 살아있는 저장소로 간주합니다. 그런 다음 데이터 레이어와 서비스/비즈니스 레이어를 추가합니다. 제 질문은 이렇게함으로써 뚱뚱한 모델을 구축하여 데이터 이전에 비효율을 발생시키는 것입니까?지방 도메인 모델 => 비효율적입니까?
예를 들어 고객에게 화면에 인보이스를 표시하는 시스템이 있다고 가정 해보십시오. 송장 전적으로 필요가 고객 이름을 인쇄 할 수
class Invoice {
Customer _customer;
OrderItems _orderitems;
ShippingInfo _shippingInfo;
}
class Customer {
string name;
int customerID;
Address customerAddress;
AccountingInfo accountingInfo;
ShoppingHistory customerHistory;
}
(for the sake of the question/argument,
let's say it was determined that the customer class had to
implement AccountingInfo and ShoppingHistory)
, 왜 우리 모두를 수행 할 것입니다 : OOP의 관점에서 그것의 생각, 우리는 아마 같은 약간 보이는 물체로 끝날 것 다른 수하물이 있습니까? 저장소 유형의 접근 방식을 사용하면 이러한 리소스 (CPU, 메모리, 복잡한 쿼리 조인 등)가 모두 필요한 이러한 복잡한 도메인 개체를 만든 다음이를 통해 클라이언트로 전송할 수 있습니다.
인보이스 클래스에 customerName 속성을 추가하는 것은 추상화에서 벗어나 끔찍한 관행처럼 보입니다. 세 번째 손에서, 고객과 같은 객체를 채우는 절반은 동일한 객체 (예 : 주소가 있지만 ShoppingHistory가없는 인스턴스와 AccountingInfo가없는 객체)의 여러 버전을 만들게되므로 매우 나쁜 아이디어처럼 보입니다 주소 등). 나는 무엇을 놓치고 있는지, 아니면 이해하지 못하고 있는가?
좋은 지적. 나는 게으름 짐을 완전히 이해하지 못했음에 틀림 없다고 생각합니다. << – MunkiPhD