Bu konuyla ilgili bir soru olup olmadığını öğrenmek için arama yaptım.Bir hiyerarşide farklı sınıfları aynı özelliklerle ele almanın en etkili yolu nedir?
Bir xml şemada xsd.exe dosyasını çalıştırarak oluşturduğum bağlamalardan koduma gömdüğüm karmaşık bir yapıya sahibim, bu yüzden yapıyı oluşturmadım ama onunla uğraşmak zorundayım.
Hiyerarşideki sınıflar içinde çoğaltılan bazı özellikler vardır. Asıl kodu gizlilik nedenlerinden dolayı yayınlayamıyorum, ancak örneğin onlardan biri WidgetValue adında bir mülkü olan 10 sınıflı bir temel sınıfım varsa, bununla nasıl en verimli şekilde başa çıkabilirim?
Şu anda, devralma sınıflarının her birinin türünü kontrol etmem ve WidgetValue özelliğine erişmek için her birine dağıtmam gerektiğini düşünüyorum.
Buna rağmen yaklaşabileceğim daha iyi bir yolu var mı?
: gibi
Sonra bir şey yapıyor önlemek ama somut bir örnek. Ayrıca, "verimli" detaylandırma gerektirir. Zaman verimliliği? Uzay verimliliği? Geliştirme süresi verimliliği? İfadenin Parsimonyosu? Daha fazla bilgi olmadan, tek yapabildiğimiz, aşağıdaki gibi alternatifleri önermektir: (1) Çoğaltma ile yaşamak; (2) “WidgetValue” öğesini ana gruba kaldırmak ancak isteğe bağlı yapmak; (3) 'WidgetValue' gerektiren 8 sınıf için bir ara sınıf oluşturun. Bunlardan hangisinin sizin amaçlarınız için daha "verimli" olacağını belirsizdir. – kjhughes
Net olmamak için özür dilerim. Gelişim zamanı verimliliği açısından demek istiyorum. Ve daha az bir ölçüde, kodun ne kadar karmaşık hale geldiğini anladı. Çünkü bu tür şeylerin olduğu sınıflarda sayısız yer vardır, dolayısıyla ne yaparsam yapayım çok fazla şey yapmak zorundayım. Eğer 2 veya 3 yaparsam, o zaman XSD'nin yeniden piyasaya sürüldüğü her zaman bunu yapmak anlamına gelen sınıfları değiştirmek zorunda kalacağım. Ayrıca, şemaya uygun olarak XML'de çıktı vermem gerekeceği gerçeğiyle ilgili bir sorun da olabilir ve bununla uyumluluğunu kırmak istemiyorum. – TH1974
İhtiyacınız olmadıkça el ile değiştirmeyin. Aksi takdirde bir dahaki sefere dersleri herhangi bir nedenle yenilemek için ihtiyacınız olacak. –