ExtJS'de birden çok devralma ile ilgili bir sorum var. Biliyorum, ancak bunu yapmak için kodu çoğaltabilirim, ancak kodu daha etkili bir şekilde kodlamak için herhangi bir yol olup olmadığını bilmek istiyorum.Extjs çoklu kalıtım mı?
Çerçevemde Kore.ux.grid.GridPanel
adlı özelleştirilmiş bir GridPanel
bileşen var. Ek işlevler ile Ext.GridPanel
'u genişletir ve REST eylemleri için arabirim sağlar. Kısa bir süre sonra, meslektaşım EditorGridPanel
numaralı telefonun aynı şekilde uygulanmasını istiyordu, yani düzenlenebilir olmasını istiyor ve aynı zamanda REST eylemlerini kolayca gerçekleştirebiliyor.
Sorum şu ki, Kore.ux.grid.GridPanel
işlevlerini özelleştirilmiş hale getirmek için Ext.EditorGridPanel
numaralı telefonu genişletebileceğim herhangi bir yol var mı?
Herhangi bir dilbilgisi hatası için üzgünüz ve kafa karıştırıyorsa onu yeniden yazabilirim. Teşekkürler!!
DÜZENLEME
Tekrar googled ve bunun imkansız diyerek konuları bulundu. Bu sorunu yaşamaya devam etmem gerekirse daha iyi bir kodlama modeli var mı?
Teşekkürler!
DÜZENLEME TEKRAR
Ben İşte bana faydası bulunan yöntemdir .. bana uygun yapıyı bulduk çok üzgünüm:
var Common = function(){} //abstract class
Ext.apply(Common.prototype, {
a : function(){},
b: function(){}...
});
Ext.ux.SomePanelA = Ext.extend (Ext.Panel, {
stuff : ............
});
Ext.ux.SomePanelB = Ext.extend (Ext.Panel, {
diffStuff : ............
});
Ext.applyIf(Ext.ux.SomePanelA.prototype, Common.prototype);
Ext.apply(Ext.ux.SomePanelB.prototype, Common.prototype);
Kod Kaynak: http://www.sencha.com/forum/showthread.php?48000-multiple-inheritance&p=228271&viewfull=1#post228271
Lütfen tekrar Daha iyi bir çözümün olduğunu düşünüyorsanız, yararlı öneriler sağlayın :) Teşekkürler! Genel işlevsellik ile temel sınıf olarak Kore.ux.grid.AbstractGridPanel
oluşturun
PLUGIN! Neden varlığını unuttum !! Öneri için teşekkürler :) Bunu çerçeveye nasıl dahil edeceğimi göreceğim.Teşekkürler :) –
Ama benim kişisel GridPanel özelleştirilmiş pagingToolbar, önceden tanımlanmış düğmeleri, arama kutusu, REST ... vb Plugin sağlayabilir gibi benim durumumda uygun olmayabilir :) Plugin yolu olmayabilir :) Öneriniz için zaten teşekkürler! –
Neden olmasın? Bu özel bileşenleri, işlevselliklerini onlara bağlamak için eklenti içinden erişebilirsiniz. Sonuçta, eklentinin yaptığı şey aslında 'Ext.apply() 'sadece şimdi yaptığınız şekilde. Sadece bunun için biraz daha sağlam ve kullanımı kolay bir API ekliyor. – Mchl