Aşağıdaki istemci kodu verildi:Bir Oluşturucu Bir Alt Sınıfa Geri Dönebilir mi?
var obj = new Class1();
Class1 yapıcısını değiştirmek için bir alt sınıf (veya başka bir alternatif uygulama) döndürmek için bir yol var mı?
Bazı koşullara bağlı olarak, objeden iki farklı uygulamadan birini almak istiyorum. Açıkçası, bir fabrika veya DI çerçevesini kullanarak değiştirebilirdim, ancak mümkünse istemci kodunu değiştirmekten kaçınmak istiyorum.
Cevabın hayır olduğunu varsayalım, ama bunun gerçekleşmesinin akıllıca bir yolu olup olmadığını merak ediyorum.
"uzantı yeni" çağrıldığında "" operatör kullanılır. Fabrika için güzel bir sözdizimsel şeker olurdu. Bu tarz bir desenin faydalı olabileceği gerçekten harika bir senaryonuz varsa, bir örneği görmeyi çok isterim. –
@Eric: Özellikle C# örneği olmasa da, bunun C++ 'da yararlı olabileceği bir durumla karşılaşıyorum. Çapraz platform kitaplığı geliştiriyorum ve platform tanımlı bir ABC örneğinin kurucusundan türetilmiş bir sınıf örneğini döndürmesi gerçekten çok yararlı olacaktır. C# ile geliştirirken benzer durumlar olması gerektiğine eminim. – Mac
@Eric Lippert - Senin için gerçek bir dünya senaryom var! http://blog.hackensplat.com/2010/09/construct-something-else-c.html – billpg