2010-11-11 32 views
5

Xml ile doldurulacak bir nesnem var. Nesneyi oluşturmak için bu xml'yi kabul eden bir çalışmayı kullanabileceğimi düşünüyorum. Ancak, bunu yapmak için daha iyi bir tasarım deseni var mı? Tüm xml ayrıştırma işlemek için nesneye mi?Bir nesneyi xml ile doldurmak için tasarım deseni

Teşekkür ederiz!

cevap

7

Hayır yapıcı çünkü xml göndermek olmamalı: Eğer özel ayrıştırılmasını gerektiren bir dize olarak XML alırsanız

+0

Ama benim sınıf niteliklerin çoğu kamu haline gelmelidir. Teşekkürler. – poiuytrez

+0

Daha iyi tasarım için sizi nesnel olmayan bir nesne haline getirmeyi hedeflemelisiniz. Büyük bir alan listeniz varsa, o zaman bir oluşturucu modeli kullanmayı düşünün. Son olarak, eğer bir şeyleri paketleyebilirseniz, belki de onları doğrudan ayarlayabilmeniz için korunan alanları kullanmayı düşünün. –

+0

Teşekkür ederiz! Bence Oluşturucu modeli benim için mükemmel. – poiuytrez

3

En basit yaklaşım XmlSerializer'ın sizin için yapmasına izin vermektir. Sadece xml'yi nasıl eşleyeceğini ve böylece Deserialize'i nasıl arayacağını bilmesi için (gerekirse) dekore edin.

  var myObject = MyObjectCustomXmlSerializer.Deserialize(xmlString); 
2

, sen, sanırım, inşa etmek için nesneyi bir yönetici/fabrika oluşturabilir modeli deserilizasyon mantığıyla birleştiriyorsunuz. Deserlizasyonu sizin için ele alan ve bir örnek döndüren bir sınıf oluşturmanız gerekir. Bu neden önemli değil belirsiz olabilir. Ama gelecekte bir veritabanından gelen verilere sahip olabileceğinizi, veritabanı bağlantısını yapıcıya aktarmak istemediğinizi düşünün, değil mi? Bunun yerine, sınıfınızın bir örneğini oluşturmak için veritabanlarını kullanan farklı bir sınıf oluşturabilirsiniz. İşte

bazı iyi okuma şunlardır: (? Veya kamu ayarlayıcıları var) Ben deserializer sınıf oluşturmak durumunda

http://en.wikipedia.org/wiki/Builder_pattern

http://en.wikipedia.org/wiki/Immutable_object

İlgili konular