jQuery高度关注DOM,并围绕DOM提供了很好的抽象。在此过程中,它利用了昨天刚刚打动我的各种众所周知的设计模式。装饰器模式就是一个明显的例子。jQuery对象围绕常规DOM对象提供了新的附加功能。
例如,DOM具有本机的insertBefore方法,但是没有相应的insertAfter方法。有多种实现方式可以填补这一空白,而jQuery是一个提供此功能的此类库:
$(selector).after(..)
$(selector).insertAfter(..)
还有许多其他示例在jQuery中大量使用Decorator模式。
您是否注意到库本身还包含其他大小的设计模式示例?另外,请提供模式用法的示例。
我把它变成一个社区Wiki,因为我相信人们喜欢jQuery的各种事情都可以追溯到众所周知的设计模式,只是这些模式的名称通常不提及它们。这个问题没有答案,但是对这些模式进行分类将提供对库本身的有用见解。
$.ajax
类似于Template方法模式,因为我们具有基本功能,并且每个其他方法(例如,$.get
替代方法)都覆盖了基础并使其更加具体。