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
より良い解決策があると思われる場合は、再度有用な提案を提供してください:)ありがとう!