마찬가지로 acceptOrder()는 주방 서비스가 배달 서비스를 호출해서 배달원 스케줄을 조정하는 작업이 꼭 필요합니다. 서비스 API를 온전하게 정의하려면 각 시스템 작업을 면밀히 분석해서 서로 어떻게 협동해야 할지 결정해야 합니다.
▼ 표 2-3 서비스별 작업, 협동자
서비스 |
작업 |
협동자 |
소비자 서비스 |
verifyConsumerDetails() |
- |
주문 서비스 |
createOrder() |
소비자 서비스: verifyConsumerDetails() 음식점 서비스: verifyOrderDetails() 주방 서비스: createTicket() 회계 서비스: authorizeCard() |
음식점 서비스 |
findAvailableRestaurants() verifyOrderDetails() |
- |
주방 서비스 |
createTicket() acceptOrder() noteOrderReadyForPickup() |
배달 서비스: scheduleDelivery() |
배달 서비스 |
scheduleDelivery() noteUpdatedLocation() noteDeliveryPickedUp() noteDeliveryDelivered() |
- |
회계 서비스 |
authorizeCard() |
- |