jQuery está muy centrado en DOM y proporciona una buena abstracción a su alrededor. Al hacerlo, hace uso de varios patrones de diseño bien conocidos que me golpearon ayer. Un ejemplo obvio sería el patrón Decorator . El objeto jQuery proporciona una funcionalidad nueva y adicional en torno a un objeto DOM normal.
Por ejemplo, el DOM tiene un método insertBefore nativo pero no hay un método insertAfter correspondiente. Hay varias implementaciones disponibles para llenar este vacío, y jQuery es una de esas bibliotecas que proporciona esta funcionalidad:
$(selector).after(..)
$(selector).insertAfter(..)
Hay muchos otros ejemplos del patrón Decorator que se usa mucho en jQuery.
¿Qué otros ejemplos, grandes o pequeños, de patrones de diseño ha notado que forman parte de la propia biblioteca? Además, proporcione un ejemplo del uso del patrón.
Haciendo de esto una wiki comunitaria, creo que varias cosas que a la gente le encanta de jQuery se remontan a patrones de diseño bien conocidos, solo que no se les suele llamar por el nombre del patrón. No hay una respuesta única a esta pregunta, pero catalogar estos patrones proporcionará una visión útil de la biblioteca en sí.
fuente
$.ajax
parece al patrón del método Plantilla, ya que tenemos una funcionalidad básica, y cada método adicional, como$.get
anula la base y lo hace más específico.El patrón compuesto también se usa con mucha frecuencia en jQuery. Habiendo trabajado con otras bibliotecas, puedo ver cómo este patrón no es tan obvio como parece a primera vista. El patrón básicamente dice que
Por ejemplo, cuando se trata de un solo elemento DOM o un grupo de elementos DOM, ambos pueden tratarse de manera uniforme.
$('#someDiv').addClass('green'); // a single DOM element $('div').addClass('green'); // a collection of DOM elements
fuente
¿Qué tal el patrón Singleton / Module, como se explica en este artículo sobre YUI: http://yuiblog.com/blog/2007/06/12/module-pattern/
Creo que jQuery usa este patrón en su núcleo, además de alentar a los desarrolladores de complementos a usar el patrón. El uso de este patrón es una forma práctica y eficaz de mantener el espacio de nombres global libre de desorden, lo que es más útil al ayudar a los desarrolladores a escribir código encapsulado y limpio.
fuente
A los ojos de la programación funcional, jQuery es una Mónada. Una mónada es una estructura que pasa un objeto a una acción, devuelve el objeto modificado y lo pasa a la siguiente acción. Como una cadena de montaje.
El artículo de Wikipedia cubre muy bien la definición.
fuente