Soru Aktarım nesneleri ve Etki Alanı nesneleri arasındaki fark


Nesneleri ve Alan nesnelerini basit terimlerle aktarma arasındaki farkı açıklar mısınız? Ve bir Java örneği verebilirseniz, bu harika olur.


25
2017-07-18 11:21


Menşei




Cevaplar:


  • DTO’ların herhangi bir mantığı yok. Sadece alanlar (eyalet) var. Bir katmandan / alt sistemden diğerine veri aktarırken kullanılırlar.
  • Etki alanı nesneleri (alan tabanlı tasarım kullanıp kullanmadığınıza veya anemik veri modeline sahip olmanıza bağlı olarak) mantığa sahip olabilir ve genellikle veritabanı yapısına bağlıdır.

Anemik veri modeli (yani, etki alanı nesnelerinizde herhangi bir mantık yok) kullanılıyorsa, DTO ve etki alanı nesnesi kutu aynı nesne ol.

İlgili: http://techblog.bozho.net/?p=427


38
2017-07-18 11:28



+1 kullanışlı terim anemik .. - Oh Chin Boon


Bir Veri Aktarımı Nesnesi (DTO) Bir uygulamanın farklı bölümleri (farklı katmanlar gibi) veya farklı uygulamalar arasında veri alışverişinde kullanılır.

  • DTO'lar basitçe "aptal" bir veri yapısıdır.
  • Sözleşmeler / arayüz tanımlarında kullanılırlar - bu, bu arabirimlerden birini kullanan herhangi bir bileşenin bu nesneler hakkında "bilindiği" anlamına gelir.

Etki Alanı Nesneleri (DO) (ve bunların türetildikleri sınıflar) iş mantığını uygularlar, çünkü bunlar yalnızca İş mantığı katmanı / Alanında bulunur (şartlar farklı olsa bile temel anlam aynıdır).

DO iş mantığını uyguladıkları için karmaşık olabilirler ve yöntemleri, olayları vb. İçerebilirler.

DTO'lar hakkında bir nokta daha

Martin Fowler düşünce okuluna göre, bir DTO, birkaç nesnenin (çoğu insanın genellikle bir DTO dediği şey) birleşimidir; gerekçeli ise, daha büyük veri paketlerinin daha sık gönderilmesinin (“konuşkanlık” dan farklı olarak ve tel üzerinden sürekli olarak çok sayıda küçük paket gönderilmesi) daha az pahalı olmasıdır.

Çoğu insanın DTO'yu tek bir nesne olarak göreceği yerde Martin F, bir DTO'nun sadece bir "zarf" olduğunu söyler. birkaç ayrık (ve muhtemelen ilgisiz) nesneler. Büyük bir sorun değil IMO - çoğu kişi bu cevabın üstündeki (veya ona yakın bir şey) tanımına göre bir DTO'nun olduğunu düşünüyor.


12
2017-07-18 11:37



Cevabın için teşekkürler. DTO'ların öncelikli olarak sunum katmanında kullanıldığı, DO'ların ise yalnızca arka uçta kullanıldığı anlamına mı geliyor? - testndtv
Hayır, DTO'lar Sunu katmanına sınırlı değildir. - Adrian K
+1 dto genellikle katmanlar arasında kullanılır, ancak bununla sınırlı değildir. - Oh Chin Boon


Aktarım nesneleri, kullanımının doğası gereği sık sık serileştirilebilir, bu durum özellikle aramalar uzaksa ve JVM arasındaysa veya durumsal oturum çekirdekleri gibi serileştirmeyi teşvik edecek şekilde kullanılacaktır. Bu amaçla, transfer nesneleri, bu tür "tedavi" ye karşı duyarlı olmalıdır. Transfer nesneleri seri hale getirilebilir.

Tersine alan nesneleri söylenemez. Etki alanı nesneleri davranış içerebilir, ancak DTO sadece bir taşıma aracıdır.


3
2017-07-18 11:41



+1 - serileştirme konusunda iyi çağrı - Bunu unutmuştum. - Adrian K


Alan perspektifi iş perspektifi, aktör veya tüm alan ve akışlarla aktivitenin konusu, DTO veri nesnesinin veri nesnelerini aynı şekilde yansıtmayan veritabanı nesneleridir (özellikle ORM mimarisinde). DTO, veri kümelemeye, dönüştürmeye, gösterimi veya bazı veri kümelenmesi gereksinimlerini karşılamak için birleşime sahip olabilir, konuyla ilgili değildir, ancak Etki Alanı nesnesinin kendi etki alanı düzeyinde tanımlaması için konu tabanı vardır.


-1
2017-11-13 21:30



Bu, yukarıdaki cevaplara herhangi bir değer kattı mı? - Chad Van De Hey