¿Cuáles son sus patrones de diseño favoritos y cómo funcionan?

No tengo la costumbre de distinguir mi amor por los patrones de diseño, además no estoy seguro de si están ahí para ser amados u odiados. Están a su disposición cuando llegue el momento. Por lo tanto, es mejor aprenderlos y ser lo suficientemente inteligente como para recordar el que debe usar cuando surja la necesidad.

Sin embargo, dado que estamos hablando de JS, valdría la pena mencionar otra belleza de JS tal como Vladislav Zorov lo puso en el prólogo.

Me gustan las operaciones asincrónicas, si esto incluso cuenta como un patrón de diseño.

Es un hecho hermoso de JS que cuando cambias el estado de las propiedades de un objeto tienes la oportunidad de establecer una función que se invoca automáticamente. De esta manera, uno puede unir los estados de las propiedades de varios objetos entre sí, produciendo reactividad. Aquí llego a un patrón de diseño que podría utilizar esta funcionalidad de la manera más eficiente. El patrón de diseño pub-sub u observador. Creo que esta funcionalidad ya existente será llevada adelante por el método Object.observe , que se propone para ES7.

Así es como se obtiene la sensación de “todo está sucediendo mágicamente” en algunos de los marcos de JS. Sí, este es el hilo invisible que no puedes ver en el espectáculo del mago.

Me gustan las funciones de orden superior, si esto incluso cuenta como un patrón de diseño.

La idea es realmente simple: tiene una función que toma otra función como argumento y / o construye y devuelve una función.

De esta manera, si necesita proporcionar mucha flexibilidad en cómo se usa su función, en lugar de ponerle miles de parámetros (o tomar un “objeto de configuración”), y luego tener un montón de condicionales dentro de ella, y aún no prever cómo alguien podría querer usarlo más tarde, solo debe hacer que tome un pequeño fragmento de código, de modo que la persona que lo use (usted o alguien más) pueda simplemente “conectar” su comportamiento personalizado, sin importar cuál sea.

¡Simple, elegante y extremadamente útil!