ฉันกำลังตั้งค่าขั้นตอนแรกของฉันในการออกแบบที่ขับเคลื่อนด้วยโดเมนซื้อสมุดสีฟ้าและทั้งหมดและฉันพบว่าตัวเองเห็นวิธีสามวิธีในการนำโซลูชันมาใช้ สำหรับบันทึก: ฉันไม่ได้ใช้ CQRS หรือการจัดหากิจกรรม
สมมติว่าคำขอของผู้ใช้มาในเลเยอร์บริการแอพพลิเคชัน ตรรกะทางธุรกิจสำหรับคำขอนั้นคือ (ด้วยเหตุผลใดก็ตาม) ที่แยกออกเป็นวิธีการในเอนทิตีและวิธีการในบริการโดเมน ฉันจะเรียกวิธีการเหล่านั้นได้อย่างไร
ตัวเลือกที่ฉันรวบรวมได้มีดังนี้:
- ให้บริการแอปพลิเคชันโทรทั้งสองวิธี
- ใช้วิธีการฉีด / ส่งสองครั้งเพื่อฉีดบริการโดเมนลงในเอนทิตีปล่อยให้เอนทิตีทำสิ่งนั้นแล้วปล่อยให้มันเรียกวิธีการบริการโดเมน (หรือวิธีอื่น ๆ ให้บริการโดเมนเรียกวิธีการในนิติบุคคล)
- เพิ่มเหตุการณ์โดเมนในวิธีเอนทิตีซึ่งเป็นตัวจัดการที่เรียกใช้บริการโดเมน (ประเภทของกิจกรรมโดเมนที่ฉันกำลังพูดถึงคือ: http://www.udidahan.com/2009/06/14/domain-events-salvation/ )
ฉันคิดว่าสิ่งเหล่านี้ใช้ได้จริง แต่ฉันไม่สามารถเลือกระหว่างพวกเขาได้ ฉันเคยคิดเกี่ยวกับเรื่องนี้มานานแล้วและฉันก็มาถึงจุดที่ฉันไม่เห็นความแตกต่างทางความหมายระหว่างทั้งสาม คุณรู้แนวทางบางอย่างเมื่อใช้อะไร