Показать сообщение отдельно
  #2 (permalink)  
Старый 18.09.2013, 11:21
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Введение фабрики виджетов в jQueryUI имело несколько целей.

1) Задействовать механизм наследования для виджетов
2) Обеспечить внешние API для виджетов
3) Снабдить каждый виджет стандартным набор функций вроде enable/disable и подобных
4) Структурировать и сделать предсказуемым код виджета

Если тебе эти фишки нужны, то тебе нужна фабрика виджетов. Если не нужны, то использовать фабрику просто ради того чтобы была не стоит. Пользуйся принципом достаточности.

Что касается наследования.
Прототип базового виджета и нового виджета смешиваются в один объект в момент наследования. Затем этот объект становится прототипом конструктора вашего виджета.

Дальше мы имеем обычный конструктор с прототипом.
То есть 10 экземпляров виджета HELLO будут иметь общий набор методов в прототипе. То есть не каких копий прототипа для каждого экземпляра не создается. Прототип на то и прототип чтобы быть общим.

В принципе у меня нет претензий к фабрике виджетов, все достаточно оптимально.


Если вам ненужно наследование от базовых виджетов jQueryUI то вы можете написать свою фабрику или создавать плагины без фабрики вообще. В принципе можно написать и альтернативную фабрику для jQueryUI, но не очень понимаю на фига это нужно

Механизьм наследования можно подробно рассмотреть вот здесь.
48я обьявление конструктора
61я подмешиваем статические свойства
71я Получаем прототип базового виджета (по умолчанию Widget )
76я оборачиваем методы оберткой чтобы ониначали поддерживать метод super
105я смешиваем базовый прототип с твоим а результат пишем в constructor.prototype
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

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