我应该将我的jQuery插件转换为使用jQuery UI的Widget Factory吗?

问题描述:

我正在构建一个相当大的Web应用程序,并使用经典插件模式构建了一些插件。其中一些超过50行并保持状态。我最近发现jQuery UI的widget factory,看来如果我要将我的插件转换为这种风格,代码将更易于阅读和维护。除了时间和精力之外,我正试图确定是否存在将其转换的缺点。我已经为其他插件使用jQuery UI。我应该将我的jQuery插件转换为使用jQuery UI的Widget Factory吗?

+1

“我正在构建一个相当大的Web应用程序,并使用经典插件模式构建了一些插件”,您应该专注于构建应用程序而不是插件。 – Babiker 2010-12-18 02:30:42

+3

确实如此,但插件已成为应用程序中非常重要的部分,未来可能需要增强。 – rhoeting 2010-12-18 02:48:46

我决定将其中一个更复杂的有状态插件转换为使用jQuery Widget工厂。有一点学习曲线,我相信这些好处是合理的。虽然我没有利用主题滚筒支撑,这里有一些我认为有用的其他好处:

  • 状态管理
  • 暗示this.each()
  • 清洁回拨机制
  • 简单的API设置和设置的选项
  • 公共和私有方法之间在视觉上明显的区别

显然,就可以实现所有的这些与传统的插件模式。但是代码看起来更清晰,并且在较长时期内更容易维护。非常感谢Eric Hynds和他的MuliSelect Widget提供的源代码,供我学习和学习如何使用Widget Factory。

应该不是问题。

如果您已经依赖jQuery UI,那么没有任何缺点。

使用良好的框架功能比实现自己的更好(大部分时间)。经过良好测试,代码少,并且通常会促进更好的设计。

如果您不想尝试使用widget工厂的附加功能,那么确实没有必要这样做。你需要真正地评估是否做出这种转换将提供除了更多工作以外的任何优势。

如果没有改变你的代码的好处,不要这样做。像babiker在他的评论中指出的,你最好花时间在应用程序结构上。

+0

你做得很好。但仔细观察小部件工厂后,它为插件开发人员提供了相当多的功能,从而最终实现了更简洁的代码。 – rhoeting 2010-12-22 10:59:56

走过这些幻灯片:http://ajpiano.com/widgetfactory/

他们会给你的小工具厂,一个梦幻般的概述,为什么你应该使用它,以及如何。