Bir alan adınız Kullanıcı olduğunuzu ve bir Kullanıcı'nın alışveriş sepetine bir öğe ekleyebilme özelliğini desteklemesini istediğinizi varsayalım. Şimdi, alışveriş sepetindeki ürün benzersiz olduğundan emin olmak istiyoruz, bu yüzden biz Kullanıcı sınıfının içindeki aşağıdaki işlevi oluşturun: Bu harika çalışıyorİş mantığı etki alanına veya hizmetlere yerleştirilmeli mi?
function AddItemToCart(Item item)
{
// Add business logic to make sure item is unique
}
. Ancak, şimdi, bir ürün sepetine eklendiğinde, kullanıcıyı e-postayla göndermek istiyorsak ne olur? Bunu AddItemToCart'a ekleyebiliriz, ancak User sınıfına bir çeşit IEmailer bağımlılığı enjekte etmeyi gerektirir. Alternatif, iş mantığını yerine getirecek ve e-postayı gönderecek olan bu işlemi (ör. ShoppingCartService) işlemek için bir hizmet oluşturmak olacaktır. Bununla birlikte, bu, oldukça anemik bir alana yol açar (yani Kullanıcı sınıfı, alıcılar/ayarlayıcılardan başka bir şey değildir)
Site yöneticisi telefon açıyorsa ne olur? User.AddItemToCart'ın bu senaryoda uygun bir tasarım olduğundan emin misiniz? –