[英]DDD When should I create a domain object and a persistence object instead of using a persistence object as a domain object?
[英]DDD, should I create a domain service just to save data?
我正在嘗試遵循本指南https://www.baeldung.com/hexagonal-architecture-ddd-spring 。 在閱讀之后,我發現了這個有趣的方法
最后,我們應該確保在每次操作后始終保存訂單。 為此,我們將定義一個域服務,它通常包含不能成為我們根的一部分的邏輯:
因此,據我了解,當我們無法將業務邏輯放入單個域 object 時,我們使用域服務。 但是指南所做的只是將單個域 object 保存到數據庫中,因為我們的域 object 中不能有存儲庫,對吧?? 如果是這種情況,為什么我們不讓 controller 訪問存儲庫(有人說這是不好的做法,有人說“不”我什至不明白??)因為我們已經將業務邏輯放在域 object 中。 所以我們會有這樣的東西。
@PostMapping
public Mono<Order> addProduct(Request request) {
return orderRepository.findById(request.orderId())
.map(order -> {
order.addProduct(reqeust.getProduct());
return order;
})
.flatMap(order-> orderRepository.save(order));
}.
我們是否應該創建一個附加層並將其稱為域服務來保存數據? 請幫助我了解最佳實踐。
您絕對不希望實體或域服務中有任何數據庫代碼。
在很多情況下,Application Services 是外部世界使用的接口,外部世界無法通過我們的 Entity 對象進行通信,但可能有它們的其他表示。 應用程序服務可以將外部消息傳遞給內部操作和進程,與域和基礎設施層中的服務進行通信,從而為外部客戶端提供內聚的操作。
應用程序服務協調對存儲庫和域對象的調用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.