Bir DDD yaklaşımı kullanarak şişirilmiş Hizmet katmanımızdan Alan katmanımıza veri taşımaya çalışıyoruz. Şu anda hizmetlerimizde birçok yere yayılmış ve mirastan faydalanmayan birçok iş mantığımız var.
Ticaretimizin çoğunun odak noktası olan merkezi bir Domain sınıfımız var. Trade nesnesi kendini nasıl fiyatlandıracağını, riski nasıl tahmin edeceğini, kendini nasıl doğrulayabileceğini vb. Bilecektir. Sonra koşulluları polimorfizm ile değiştirebiliriz. Örneğin: SimpleTrade kendisini bir şekilde fiyatlandıracak, ancak ComplexTrade kendisini başka bir şekilde fiyatlandıracak.
Bununla birlikte, bunun Ticaret sınıflarını şişireceğinden endişe duyuyoruz. Gerçekten kendi işlemesinden sorumlu olmalı, ancak daha fazla özellik eklendikçe sınıf büyüklüğü katlanarak artacak.
Yani seçeneklerimiz var:
- İşlem mantığını Ticaret sınıfına koyun. İşleme mantığı artık ticaretin türüne göre polimorfiktir, ancak Ticaret sınıfı artık birden fazla sorumluluğa (fiyatlandırma, risk vb.) Sahiptir ve büyüktür.
- İşlem mantığını TradePricingService gibi başka bir sınıfa yerleştirin. Artık Ticaret mirası ağacıyla polimorfik değil, ancak sınıflar daha küçük ve test edilmesi daha kolay.
Önerilen yaklaşım ne olurdu?