以下是一个非常小的示例,可以让您对生命周期有所了解。
请注意,这是一种传统的 DDD 风格,您可能希望将读取模型与写入模型 (CQRS) 分开并基于 UI 任务。
在演示代码(控制器)中
var newOrder = _orderService.NewOrder(); // return a new DTO containing the generated id.
// Fill the updated info.
_orderService.SubmitOrder(updatedOrder);
在服务层(应用层)
public OrderDTO NewOrder()
{
var newOrder = OrderFactory.CreateNew(); // Create a new order which generate an id
return _mapper.Convert<OrderDTO>(newOrder); // Construct OrderDTO for the new order
}
public void SubmitOrder(OrderDTO orderDTO)
{
var order = _mapper.Convert<Order>(orderDTO); // Construct order entity from DTO
order.Activate() // Call some business logic in the domain
_orderRepository.Save(order); // Save order in repository
}