작성
·
161
0
분명 강의중에 설명해주셨던 내용같은데,,, 넓은 범위를 복습하다보니 내용을 찾기가 어려워서 잘문 남깁니다.
강의 내용에서는 주문을 생성할 때, orderService 계층의 order() 메서드를 호출하여 orderItem 을 생성하고, 이는 내부적으로 createOrder 를 다시 호출해서 디비에 저장되는 식으로 코드를 짰습니다.
그런데 문득 클라이언트 단에서(예를 들어 controller 계층에서) order.createOrder 를 직접 접근하면 어떤 문제들이 있을지가 궁금해졌습니다.
예릃 들어 아래 제 테스트 코드 처럼요.
이런 설계가 안좋아보이긴 하나, 마땅히 생각나는 문제가 없어서 질문드립니다.
@Test
@DisplayName("Direct access thru Order Domain")
@Transactional
@Rollback(value = false)
public void directAccess(){
Item bread = new Bread(
"red bean", 100, 2000, "a", BreadSize.LARGE
);
itemService.createItem(bread);
Order order = new Order();
orderService.createOrder(order);
OrderItem orderItem = OrderItem.createOrderItem1(bread, bread.getItemPrice(), 20);
order.addOrderItem1(orderItem);
}