Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.06.2012, 10:34
Аспирант
Отправить личное сообщение для Eugent Посмотреть профиль Найти все сообщения от Eugent
 
Регистрация: 28.02.2012
Сообщений: 55

Расширение классов
Привет всем!

Есть проект с 3 модулями, большая часть функционала которых похожа. Решил сделать 1 модуль-ядро, объединяющий в себе этот общий функционал. Сделал этот модуль рабочим с полной MVC-структурой, теперь хочу остальные сделать так, чтобы они по сути наследовались от этого модуля-ядра.

Вопросы такие:
- при наследовании от ядра лучше создать аналогичную структуру с наследованием от аналогичных элементов модуля-ядра или есть какой-то более рациональный способ?
- наследование правильнее делать через override или define вида
//представление дерева модуля-ядра
	Ext.define('Project.common.view.Tree' ,{
		extend	: 'Ext.tree.Panel',
		alias 	: 'widget.systemtree',
		...
	});
	//представление дерева модуля-наследника
	Ext.define('Project.viewer.view.Tree' ,{
		extend	: 'Project.common.view.Tree',
	   ...
	});
Ответить с цитированием
  #2 (permalink)  
Старый 22.06.2012, 10:45
Аватар для Ex_Soft
Профессор
Отправить личное сообщение для Ex_Soft Посмотреть профиль Найти все сообщения от Ex_Soft
 
Регистрация: 19.12.2009
Сообщений: 164

Сообщение от Eugent Посмотреть сообщение
- наследование правильнее делать через override или define вида
тынць
__________________
"Helo, word!" - 17 errors 56 warnings
Ответить с цитированием
  #3 (permalink)  
Старый 22.06.2012, 11:14
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Define - верным путём идёте товарищ.
Вот только правильнее это называть не ядром, а базовым классом.
__________________
Лучше калымить в гандурасе чем гандурасить на колыме
Ответить с цитированием
  #4 (permalink)  
Старый 22.06.2012, 11:49
Аспирант
Отправить личное сообщение для Eugent Посмотреть профиль Найти все сообщения от Eugent
 
Регистрация: 28.02.2012
Сообщений: 55

Сообщение от DjDiablo Посмотреть сообщение
Define - верным путём идёте товарищ.
Вот только правильнее это называть не ядром, а базовым классом.
Это не класс - это полностью рабочий автономный проект, поэтому назвать всю эту толпу mvc-классов одним классом язык не поворачивается.
Ответить с цитированием
  #5 (permalink)  
Старый 22.06.2012, 11:51
Аспирант
Отправить личное сообщение для Eugent Посмотреть профиль Найти все сообщения от Eugent
 
Регистрация: 28.02.2012
Сообщений: 55

а для общего развития - override для чего вообще используется?
Ответить с цитированием
  #6 (permalink)  
Старый 22.06.2012, 12:47
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

грубо говоря
define обьявляет класс
create- создаёт экземпляр
override изменяет существующий класс/экземпляр класса, производит переопределение/перегрузку

пример 1) перегрузка метода в экземпляре класса.
var panel = new Ext.Panel({ ... });

 Ext.override(panel, {
     initComponent: function () {
         // ваш добавленный функционал

         this.callParent();
     }

 });


пример 2) перегрузка метода в обьявленном классе
Ext.define('My.Cat', {
    constructor: function() {
        alert("I'm a cat!");
    }
});

My.Cat.override({
    constructor: function() {
        alert("I'm going to be a cat!");

        this.callParent(arguments);

        alert("Meeeeoooowwww");
    }
});

var kitty = new My.Cat(); // alerts "I'm going to be a cat!"
                          // alerts "I'm a cat!"
                          // alerts "Meeeeoooowwww"
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 22.06.2012 в 12:57.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Узнать расширение файл maximus Общие вопросы Javascript 3 17.05.2014 16:47
Как определить расширение файла по содержимому? exvion Firefox/Mozilla 1 15.04.2012 22:16
Добавление кнопки через расширение Diablos Общие вопросы Javascript 7 16.12.2011 18:54
Как узнать размер и расширение файла? Shitbox2 Общие вопросы Javascript 17 23.02.2011 12:26
Как узнать Расширение монитора? sukubba Общие вопросы Javascript 2 11.12.2010 06:19