Kansız Etki Alanı Modeli: Artıları/Eksileri
Artılarını ve eksilerini Kansız bir Etki alanı Modeli (aşağıdaki bağlantıya bakınız) kullanmak için ne olduğunu bilmek istiyorum.
CEVAP
"Kansız Etki alanı Modeli anti-desen, neden bunu uygulamak o kadar çok sistemleri vardır?"
Çeşitli nedenler var
1. Sistemin karmaşıklığı
Eğer uygulamak istiyorsanız: basit bir sistem internette bulmak neredeyse tüm örnekler ve örnek kodu olan)
Siparişe ürün ekleme
Sipariş üzerine bu fonksiyonu ekledim
public void Order.AddOrderLine(Product product)
{
OrderLines.Add(new OrderLine(product));
}
Güzel ve süper nesne yönelimli.
Hadi öyle olmasa bile ürünün stokta var olduğunu doğrulamak ve İstisna lazım emin olmak için söylemek lazım.
Gerçekten benim için Stok bağımlı olmak istemiyorum bu yana Sipariş üzerine daha fazla koymak, yapamam, şimdi hizmet gitmesi gerekiyor
public void OrderService.AddOrderLine(Order order, Product product)
{
if (!InventoryService.Has(product)
throw new AddProductException
order.AddOrderLine(product);
}
Ayrıca Sipariş İİnventoryService geçerim.Başka bir seçenek AddOrderLine, ama o hala İnventoryService Sipariş bağımlı yapar.
Hala Sipariş işleve sahip değildir.AddOrderLine, ama genellikle benim deneyim için kapsam dışında çok fazla bir İş Mantığı varken Sipariş kapsamı ile sınırlı.
Sistem daha sonra sadece temel CRUD, OrderService senin mantık çoğu için çok az ile sona erecek.
2. Geliştirici OOP bakış
Varlıklar üzerinde gitmek gerekir hakkında internette hararetli tartışmalar var.
Gibi bir şey
Sipariş.Kaydet
Düzen kendini kurtarmak için nasıl bilmeli? Bunun için depoları.
Şimdi eklemek amacıyla çizgiler Sipariş edebilirsiniz? Eğer bunu mantıklı basit İngilizce kullanarak yapmaya çalışıyorum, gerçekten de anlam ifade etmiyor. Kullanıcı yapmak isteyelim ki Sipariş için Ürün ekler.() AddOrderLineToOrder? Bu overkill gibi görünüyor.
Nasıl OrderService hakkında.() AddOrderLine. Şimdi mantıklı sanki!
OOP benim anlayış sarma için işlev sınıf iç durum erişmek için gereken nerede sınıfları fonksiyonları koyman. Sipariş girmek istesem.OrderLines toplama, Düzen getirdim.() AddOrderLine Sipariş. Bu şekilde sınıf iç durum açığa almıyor.
3. IoC Kaplar
IoC konteyner kullanan sistemler genellikle tamamen bitik.
Hepsinin arayüzleri koymak sürece arabirimleri var, ama etki alanı nesneleri (kolay) test edebilir mi hangi servisler depolarınızı test edebilirsiniz çünkü.
"Şu anda tüm programlama Problemleri için çözüm bulundu, bir çok insan körü körüne takip ve bu şekilde Kansız Etki Modelleri ile bitirmek. "IoC beri
4. OOP zor, usul kolaydır
"Bu konuda, ama şunu keşfettim ki, "Curse of Knowledge biraz var Yeni geliştiriciler için DTOs ve Hizmetleri sahip olduğu çok Zengin Etki alanı daha kolay.
Muhtemelen Zengin Etki alanı ile hangi sınıflar mantığı koymak için bilmek daha zor olduğundan. Yeni sınıflar oluşturmak için ne zaman? Hangisini kullansak? vb
Vatansız hizmet sadece hizmetinde en yakın isim tokat.
Bahar ve kansız etki alanı modeli...
- Gerçek bir örnek kaçınarak kansız et...
Nasıl göster Model SONRASI bir eylem E...
Kansız Etki anti-desen tek Sorumluluk ...
YouTube ve Haritalar gibi bir http etk...