2008-11-08 24 views
8

Tüm bunların birlikte nasıl çalıştığını anlamaya çalışıyorum. Bir DTO’nun temel olarak sadece Etki Alanı Nesneleri’nin formlara ve benzerlerine geri dönmesi için bir veri kabı olduğunu biliyorum. Etki Alanı nesnesi bir DTO içeriyor mu veya DTO'yu yapıyor mu ve Etki Alanı Nesnesi, el ile eşlenecek tüm aynı özelliklere sahip oluyor mu?Veri Aktarımı Nesneleri, Etki Alanı Nesneleri ve Depoları

DTO türümü bir hizmette ifşa edersem, istemcide her alma/ayarlama işlemi için gidiş gelişi oluşturmadan alıcıları ve ayarlayıcıları nasıl kullanabilirim? Uzun bir kurucunun olabileceğini biliyorum, ancak 7'den fazla mülkünüz varsa çirkinleşebilir.

Havuz desenini uygularken, DTO veya Etki Alanı Nesnesini geçebilir miyim?

cevap

4
  • DTO'lar ve Etki Alanı nesneleri ayrı olmalıdır.
  • Bir DTO'yu bir etki alanı nesnesine ve etki alanı nesnesine bir DTO ile eşleyen bir eşleyici bulunmalıdır. Bu eşleştirici, bir arabirimin, nesnelerin birbiriyle eşleşmesi için yansıma kullanan varsayılan eşleştiriciyle gerçekleştirilmelidir.
  • Depo, hizmetlerinin sunulması gereken etki alanı nesnelerini döndüren bir hizmet olmalıdır.
  • DTO, bir web hizmeti tarafından açığa çıkan bir sınıfsa, oluşturulan WSDL özelliği, özelliği bir öğe olarak tanımlar ve diğer tarafta oluşturulan proxy, yalnızca çalışan bir alıcı/ayarlayıcı özelliği oluşturur. Müşterinin kendisi, böylece alıcılar ve ayarlayıcılar gidiş dönüşe neden olmaz.
  • Sadece DTO'nuzda bir ortak değişken oluştursanız bile, vekil sunucu ve ayarlayıcı olarak uygulanacaktır.
1

DTO'nun Tüketici Etki Alanı nesnesini kullanmaya başlayabilmesi için DTO'nun Etki Alanı nesnesine bir başvuru içermesi daha iyi olur. Demek ki, DTO'nun tüketicileri Domain nesnesini değiştirmemeli, DTO'nun Domain nesnesinde kapsüllenmiş değerleri içermesi gerekebilir. Bu, Domain nesnesinin derin bir kopyasını yapmanız gerektiğinden zor olabilir.

Hizmet olarak DTO türünü açığa çıkarmanın neden alıcı/ayarlayıcılarının gidiş dönüş yapmasına neden olacağını bir sorun olduğundan emin değilim. Hizmet bir uzaktan hizmet ise, geri gönderilen DTO zaten serileştirilir ve alıcılarınız/ayarlayıcılarınız değerlerin kopyasını alır. Hizmet uzak değilse, istemci ve hizmet aynı süreç alanında olduğundan, "gidiş dönüş" yapmak için çok fazla ceza gözükmemektedir.