У меня вопрос по поводу множественного наследования в ExtJS. Хотя я знаю, что могу просто продублировать код, чтобы это произошло, но я хочу знать, есть ли способ сделать его более эффективным.
У меня есть настраиваемый компонент GridPanel
в моей структуре, который называется Kore.ux.grid.GridPanel
. Он расширяет Ext.GridPanel
дополнительными общими функциями и предоставляет интерфейс для действий REST.
Вскоре позже, моя коллега хотела, чтобы EditorGridPanel
также была реализована таким же образом, то есть она хочет, чтобы она была редактируемой и в то же время имела возможность легко выполнять действия REST.
Мой вопрос есть ли способ расширить Ext.EditorGridPanel
, чтобы использовать настроенные функции Kore.ux.grid.GridPanel
?
Извините за грамматические ошибки, я могу перефразировать это если это сбивает с толку. Спасибо !!
РЕДАКТИРОВАТЬ
Я снова погуглил и обнаружил, что это невозможно. Есть ли лучший шаблон кодирования, которому я должен следовать, если у меня возникла эта проблема?
Спасибо!
ИЗМЕНИТЬ СНОВА
Извините, я нашел структуру, которая мне подходит ... Вот метод, который я нашел полезным для себя:
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);
Источник кода: http://www.sencha.com/forum/showthread.php?48000-multiple-inheritance& p = 228271 & viewfull = 1 # post228271
Пожалуйста, еще раз дайте полезные предложения, если вы думаете, что у вас есть лучшее решение :) Спасибо!