กิจกรรมการใช้งานใน DDD?
คำถามนี้คล้ายกับ: มีเงื่อนไขเหตุการณ์ของแอปพลิเคชันใน DDD หรือไม่ แต่ฉันไม่รู้ว่าจะใช้คำอธิบายที่ให้ไว้กับปัญหาเฉพาะของฉันอย่างไร
ฉันมีSearchFilmUseCase
และต้องการเพิ่มเหตุการณ์FilmSearchedEvent
เมื่อเสร็จสิ้นการดำเนินการ ขณะนี้เลเยอร์แอปพลิเคชันกำลังเพิ่มเหตุการณ์ วิธีเดียวที่ฉันสามารถยกเหตุการณ์นี้จากโดเมนได้คือในไฟล์FilmRepository
. อย่างไรก็ตามที่เก็บเป็นเพียงอินเทอร์เฟซดังนั้นฉันจึงไม่สามารถเพิ่มเหตุการณ์ที่นั่นได้
ผมคิดว่าการเพิ่มเหตุการณ์ที่เลเยอร์แอปพลิเคชันไม่ถูกต้อง ฉันจะเข้าใกล้สถานการณ์นี้ได้อย่างไร?
คำตอบ
วิธีแก้ปัญหาหนึ่งคือการสร้างบริการโดเมนเพื่อดำเนินการค้นหาและเพิ่มเหตุการณ์
กิจกรรมของโดเมนทั้งหมดจะต้องถูกเพิ่มขึ้นจากเลเยอร์โดเมน สถานที่ที่ดีที่สุดคือรูทรวมที่ควรดำเนินการจริงๆ รูทรวมอาจมีเหตุการณ์โดเมนทั้งหมดที่ถูกยกขึ้นและในเลเยอร์แอปพลิเคชันคุณสามารถรับและเผยแพร่ไปยังบัสเหตุการณ์ได้