Gördüğüm ortak bir model , bir tür "ham" veri kaynağını (örneğin bir ADO.NET veya ) argüman olarak alan ve alanlarını haritalayan, Mapper
model olarak bilinen şeydir (karıştırılmaması DataMapper
gereken bir şeydir) . Bir işletme / etki alanı nesnesindeki özellikler. Örnek:DataReader
DataSet
class PersonMapper
{
public Person Map(DataSet ds)
{
Person p = new Person();
p.FirstName = ds.Tables[0].Rows[0]["FirstName"].ToString();
// other properties...
return p;
}
}
Fikir, Ağ Geçidi / DAO / Depo / etc. Dönmeden önce Eşleştiriciyi arayacak, bu nedenle temel veri konteynerine karşı zengin bir iş nesnesi elde edeceksiniz.
Bununla birlikte, bunun aynı olmasa da, bir etki alanı nesnesini oluşturan ve döndüren Fabrika modeliyle (DDD parlance olarak, yine de) ilişkili olduğu görülüyor. Wikipedia şöyle diyor: DDD Fabrikası:
Fabrika: etki alanı nesneleri oluşturma yöntemleri, alternatif uygulamaların kolayca birbirleriyle değiştirilebileceği şekilde uzmanlaşmış bir Fabrika nesnesine yetki vermelidir.
Bu alıntıdan, aklıma gelebilecek tek fark, DDD tarzı Fabrika'nın “Eşleştirici” belirli bir sınıfa kilitlenirken ihtiyaç duyulduğunda (örneğin, BusinessCustomer ve ResidentialCustomer gibi) özel bir nesne türü getirebilmesi için parametrelendirilebilmesidir. ve sadece çeviri yapar.
Öyleyse bu iki model arasında bir fark var mı veya temelde farklı isimlerle aynı şey mi?
DataMapper
şablonun veritabanının kendisine erişebildiğini düşündüm, bu "Haritacı" veritabanından çıkmıyor, bir tür sonuç sonucunu bir nesneye dönüştürüyor.