如何改进我的代码结构以更好地增强事件处理程序的功能?

时间:2013-09-06 17:33:15

标签: javascript design-patterns javascript-events event-handling coffeescript

我正在开发一个基于网络的编辑用户界面,其中包含许多交互式项目,其中一些是相似的,但它们之间的功能略有不同。使用CoffeeScript,我创建了一个基类,其中包含每个类似项目共有的所有功能;然后,我正在扩展该类,为每个独特的项目添加更多专业功能。

我创建了一个演示我当前方法的基本示例:

http://jsbin.com/uMEyeZO/7/edit?html,css,js,output

在此示例中,两个框都共享.handleChangeColor()方法,但#special-box具有唯一的.handleExpandWidth()行为。我只是重新定义后一种方法来改变#special-box的功能。

在这个简单的例子中,事情并不是太乱。但是,在我的实际项目中,单击一个项目时会处理很多功能,其中大部分都是两个项目共有的。为特殊情况重新定义整个方法会导致大量重复的代码。

我做了一些头脑风暴试图想出一个更优雅的方法,但到目前为止,我很茫然。我怀疑有一个我缺少的常见设计模式,或者是一种重构我的代码的方法(例如,调用在单个事件处理程序中定义特定行为的方法,而不是在多个方法中设置事件处理程序),这更有意义。

如果您有任何建议,请与我们联系!

1 个答案:

答案 0 :(得分:0)

我想你可能想要“超级”?

http://coffeescript.org/#classes