You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Value-object: Nó sẽ là lớp bao lấy các kiểu giá trị nguyên thuỷ của ngôn ngữ lập trình, chúng bất biến (immutable) và KHÔNG CÓ ID, nếu với các giá trị có sự liên quan chặt chẽ tới nhau thì Value-object có thể có nhiều thuộc tính giá trị trong đó
VD: Với string --> String-Value-Object class, class này sẽ có các phương thức phụ trợ (concat, ....). String-Value-Object sẽ có các thuộc tính {firstName: string, lastName: string}
Entity: có thuộc tính ID để định danh và là mutable
Aggregate: là tập hợp của Entity và Value-object. Ta có khái niệm Aggregate root, từ bên ngoài, các thao tác sẽ chỉ tác động đến root entity này mà thôi. Lấy ví dụ như: Entity "Order", bên trong có "OrderDetail". Khi bên ngoài muốn thao tác (thay đổi, update) lên "Order" thì chỉ có "Order" bị tác động, "OrderDetail" sẽ không bị tác động
Repository: sẽ là nơi thực hiện "Lấy về", "Lưu trữ" các Aggregates, Entities. Trên thực tế, đây sẽ là nơi tương tác trực tiếp với DB, cũng như API bên ngoài. Trong tầng domain, các repositories sẽ được viết dưới dạng interface, phần triển khai sẽ do infrastructure đảm nhận
Domain service: sẽ là nơi viết các logic xử lí không liên quan đến Aggregate, Entity, Value-object. VD: kiểm tra tính unique của user id.
VD: Với string --> String-Value-Object class, class này sẽ có các phương thức phụ trợ (concat, ....). String-Value-Object sẽ có các thuộc tính {firstName: string, lastName: string}
Entity
vàValue-object
. Ta có khái niệmAggregate root
, từ bên ngoài, các thao tác sẽ chỉ tác động đến root entity này mà thôi. Lấy ví dụ như: Entity "Order", bên trong có "OrderDetail". Khi bên ngoài muốn thao tác (thay đổi, update) lên "Order" thì chỉ có "Order" bị tác động, "OrderDetail" sẽ không bị tác độngRepository: sẽ là nơi thực hiện "Lấy về", "Lưu trữ" các Aggregates, Entities. Trên thực tế, đây sẽ là nơi tương tác trực tiếp với DB, cũng như API bên ngoài. Trong tầng domain, các repositories sẽ được viết dưới dạng interface, phần triển khai sẽ do infrastructure đảm nhận
Domain service: sẽ là nơi viết các logic xử lí không liên quan đến Aggregate, Entity, Value-object. VD: kiểm tra tính unique của user id.
Ref: https://codezine.jp/article/detail/10776
https://qiita.com/tarokamikaze/items/d368e31edefc6a705625
The text was updated successfully, but these errors were encountered: