Bir ASP.NET MVC uygulamasında Depozit Kalıbı'nı (http://www.asp.net/mvc sitesindeki örnekler gibi) kullanıyorum. Biri ProductRepository adlı diğeri CategoryRepository adlı iki depomuz var. Depoları doğrulamak ve çağırmak için iki hizmet, Kategori Hizmeti ve Ürün Hizmeti'ni de kullanıyorum. ProductService'de bir kategori listesine ihtiyacım var; bu, bir tanesinin CategoryRepository'de zaten uygulanmış olduğu bir yöntem. Sorum şu: Hangi ProductService from CategoryRepository içinde bulunan ListCategories yöntemini çağırmak için doğru yolu nedir? ProductRepository'de (DRY felsefesi) başka bir ListCategories yöntemi uygulamak istemiyorum. Teşekkürler.Depolar arasında arama yöntemleri - Havuz Kalıbı
7
A
cevap
4
Benzer depoları bir servise aktarmanızı öneririm. Dolayısıyla, bir e-Ticaret uygulaması oluşturuyorsanız ProductRepository, CategoryRepository vb. CatalogService gibi bir şeye dönüştürün ve ilgili tüm depoları barındırmasını sağlayın.
3
Bir seçenek ProductService sınıfının bir CategoryService örneğini sağlamaktır.
public class ProductService {
ICategoryService _categoryService = null;
public ProductService(ICategoryService categoryService) {
_categoryService = categoryService;
}
}
Daha sonra herhangi bir spesifik CategoryService uygulanmasına direk bağlantı kurmak zorunda kalmadan ProductService gelen kategori listeleri erişebilir.
İlgili konular
- 1. İş birimi ve havuz kalıbı
- 2. Havuz Kalıbı ve katmanlama. Güvenliği nerede uygularım?
- 3. İş Birimi/Havuz Kalıbı ile Esinti
- 4. SOLID İlkesi Havuz Kalıbı İle Laravel
- 5. İş Süreçleri ve Havuz Kalıbı ile İşlemleri Kullanma
- 6. Tüm tablo özelliklerini UOW sınıfında (Genel havuz kalıbı)
- 7. Tür, başvurulan bir derlemede tanımlanmıştır. C#, Genel Havuz Kalıbı, URF
- 8. Sorgu Nesne Kalıbı (Tasarım Kalıbı)
- 9. Xcode Debugger'dan arama yöntemleri mi?
- 10. Teste tabi olmayan arama yöntemleri?
- 11. Git, depolar arasında hangi nesnelerin gönderilmesi gerektiğini nasıl belirler?
- 12. Vim'de regex desenini yazarken arama kalıbı nasıl çağrılır?
- 13. JavaScript/jQuery ile Çift veya Çoklu Geri Arama Tasarımı Kalıbı
- 14. Cron zamanlayıcı "devre dışı kalıbı kalıbı"
- 15. Github'da Yıldızlı depolar nelerdir?
- 16. MVVM Kalıbı
- 17. Komut Kalıbı
- 18. Birden çok sütun arasında arama yapma
- 19. Tüm alanlar arasında nasıl arama yapılır?
- 20. A Havuz Fabrikası Sınıfı
- 21. DBCP Bağlantısı Havuz loginTimeout
- 22. CakePHP'deki test yöntemleri arasında bir fikstür dinamik olarak değiştirilebilir mi?
- 23. GitHub "Katkılarınız" ve özel depolar
- 24. STL: Referansları veya değerleri depolar?
- 25. SBT'nin kullandığı varsayılan depolar nelerdir?
- 26. Genel Performans Açık Kaynaklı Depolar?
- 27. RequireJS ve JS Modülü Kalıbı
- 28. Sınıflar içinde geri arama yöntemleri nasıl uygulanır (PHP)
- 29. Miras kalıbı olmadan C# de dekoratör kalıbı. Bu doğru mu?
- 30. Scala Opsiyon kalıbı
+1. Genel olarak bu, sizi işletmede ayrılan, varlıklara değil, hizmetlere bırakıyor. –
Peki, Katalog Hizmeti bir ürünü güncellemek için ProductRepo'yu ve bir hizmet yönteminde bir kategoriyi güncellemek için CategoryRepo'yu kullandığında ne olur? Bu, ProductRepo değişikliklerinin tek bir işlemde yapıldığını ve CategoryRepo değişikliklerinin başka bir işlemde yapıldığını mı gösterir? ProductRepo'nun kategorileri değiştirmesine izin vermedikçe repo işlemlerinin ayrık olduğunu her zaman düşündüm. İnsanlar gerçek dünyada ne yapar? – IanT8