Domain services
อธิบายได้ดีที่สุดจากสิ่งที่ไม่ได้:
- พวกเขาไม่ใช่
Entities
หรือAggregate roots
- พวกเขาจะไม่
Value objects
- รู้โดเมนดำเนินการที่ไม่เป็นธรรมชาติพอดีเพียงหนึ่ง
Entity
หรืออย่างใดอย่างหนึ่ง Value object
ตัวอย่างของการDomain service
เป็นSaga/Process manager
มันพิกัดกระบวนการระยะยาวที่เกี่ยวข้องกับหลาย ๆที่เป็นไปได้จากที่แตกต่างกันAggregate roots
Bounded contexts
ที่ถูกกล่าวว่าสิ่งที่เป็นDomain service
และวิธีการใช้งานเป็นสองสิ่งที่มุมฉาก
UserService ใน Domain Layer นั้นเป็นเพียงแค่ผู้ไกล่เกลี่ยและ / หรือส่วนหน้าของบริการทั้งสองและโครงสร้างพื้นฐานของเลเยอร์หรือมีมากกว่านั้นหรือไม่
บริการโดเมนบางอย่างเช่นUserRepository
(ประกอบด้วยส่วนต่อประสานที่กำหนดไว้ในDomain layer
และการนำไปปฏิบัติอย่างเป็นรูปธรรมในInfrastructure layer
) สามารถนำมาใช้โดยใช้Facade
รูปแบบการออกแบบ บริการโดเมนอื่น ๆ ไม่ใช่
ไม่มีกฎที่เข้มงวดเกี่ยวกับวิธีการใช้งานนอกเหนือจากกฎสำคัญที่ว่าDomain layer
จะต้องไม่ขึ้นอยู่กับเลเยอร์อื่น ๆ (และSOLID )