저는 Address, Product, Order, OrderLine과 같은 비즈니스 클래스를 가지고 있습니다. 이 경우, Order 클래스에 관한 질문과 저장소에서 어떻게 업데이트해야하는지에 대한 질문이 있습니다.리포지토리 및 비즈니스 개체를 사용하는 것이 좋습니다.
Order 클래스는 둘 이상의 OrderLine을 가질 수 있습니다. 이 클래스는 같이 보입니다 다음
class Order {
private List<OrderLine> orderLines;
public Address CustomerAddress { get; set; }
public Address DeliveryAddress { get; set; }
public void Add(OrderLine line) {
// stuff to add order line.
}
public void Remove(int index) {
// stuff to remove order line by index.
}
}
나는 다음을 수행 할 수있는 주문 인출해야하는 경우 :
Order myOrder = Orders.Get(5); // Gets the order with ID 5 from repository.
을 지금을, 내가 추가하거나 필요에 따라 순서 라인을 제거하고 CustomerAddress를 수정 또는 DeliveryAddress.
내가 수정 내가 할 수있는 순서로 업데이트 할 때 : 지금은 이전에 사용 도착 순서를 가정
public bool Update() {
return Orders.Update(this); // Let repository handle updating of this order.
}
: 내부적으로 주문의 Update 메소드를 호출
bool updated = order.Update();
을 같은 리포지토리 Orders.Get (5)에는 10 개의 주문 라인이 있으며 1 개의 주문 라인을 수정하고 1 개의 주문 라인을 추가하고 1 개의 주문 라인을 삭제했습니다. 주문 저장소의 업데이트 방법에
myOrder.DeliveryAddress = Addresses.Get(64); // Get address with ID 64 from repository and assign it to order.
어떤 일이 발생한다 :
내가 다른 배달 주소를 할당한다고 가정?
모든 주문 라인을 업데이트하고, 제거 된 주문 라인을 삭제하고, 추가 된 주문 라인을 저장하고 변경된 주문 라인을 업데이트해야합니까?
이러한 내부 항목 (Address 및 OrderLines)을 모두 업데이트, 삽입 또는 제거해야 할 때 매우 복잡해지기 때문에 조금 잃어 버렸습니다.
아무나 제안이 있으십니까?
사전 : 당신이 생각의 도메인 기반 디자인 학교를 따르는 경우 각 집계는 것 관련 클래스의 숫자로 구성되어 어디