Saya sedang mengatur langkah pertama saya ke dalam desain berbasis domain, membeli buku biru dan semuanya, dan saya menemukan diri saya melihat tiga cara untuk mengimplementasikan solusi tertentu. Sebagai catatan: Saya tidak menggunakan CQRS atau Event Sourcing.
Katakanlah permintaan pengguna masuk ke lapisan layanan aplikasi. Logika bisnis untuk permintaan itu (untuk alasan apa pun) dipisahkan menjadi metode pada entitas, dan metode pada layanan domain. Bagaimana saya harus memanggil metode-metode itu?
Opsi yang saya kumpulkan sejauh ini adalah:
- Biarkan layanan aplikasi memanggil kedua metode
- Gunakan metode injeksi / pengiriman ganda untuk menyuntikkan layanan domain ke entitas, membiarkan entitas melakukan hal itu dan kemudian membiarkannya memanggil metode layanan domain (atau sebaliknya, membiarkan layanan domain memanggil metode pada entitas)
- Naikkan acara domain dalam metode entitas, pawang yang memanggil layanan domain. (Jenis acara domain yang saya bicarakan adalah: http://www.udidahan.com/2009/06/14/domain-events-salvation/ )
Saya pikir ini semua layak, tetapi saya tidak dapat memilih di antara mereka. Saya sudah memikirkan hal ini sejak lama dan saya sampai pada titik di mana saya tidak lagi melihat perbedaan semantik di antara ketiganya. Apakah Anda tahu beberapa pedoman kapan harus menggunakan apa?