Плагины без сохранения состояния и против Stateful
Большинство плагинов jQuery являютсялица без гражданства;они выполняют какое-то действие, и их работа выполнена.Например, если вы установите текст элемента с помощью .text( "hello" )
, фаза настройки не будет, и результат всегда будет одинаковым.Для этих типов плагинов имеет смысл просто расширить прототип jQuery.
Однако, некоторые плагины имеют состояние;они имеют полный жизненный цикл, поддерживают состояние и реагируют на изменения.Эти плагины требуют много кода, предназначенного для инициализации и управления состоянием (а иногда и уничтожением).Это приводит к большому количеству шаблонов для создания плагинов с состоянием.Хуже того, каждый автор плагина может управлять жизненными циклами и указывать их по-разному, что приводит к различным стилям API для разных плагинов.Фабрика виджетов нацелена на решение обеих проблем, устраняя шаблон и создавая согласованный API для плагинов.
Согласованный API
Фабрика виджетов определяет, как создавать и уничтожать виджеты, получать и устанавливать параметры,вызывать методы и прослушивать события, запускаемые виджетом.Используя фабрику виджетов для создания ваших плагинов с отслеживанием состояния, вы автоматически соответствуете определенному стандарту, что облегчает новым пользователям использование ваших плагинов.В дополнение к определению интерфейса, фабрика виджетов также реализует большую часть этой функциональности для вас.(...)
Настройка параметров при инициализации
Всякий раз, когда вы создаете плагин, который принимает параметры, вы должны определить значения по умолчанию для максимально возможного количества параметров, а затем объединить предоставленные пользователем параметры спо умолчанию при инициализации.(...) Фабрика виджетов предоставляет эту функциональность и даже продвигает ее немного дальше.
Я публикую здесь ссылку на функцию, поскольку именно здесь я впервые ищу ответ!:)