Ir al contenido principal

Destacado

Javascript | Proxy

Proxy Esta entrada continua con el tema de patrones de diseño y en esta ocasión vamos a examinar el patron Proxy y algunas de sus ventajas. Descripción. El proxy es un patrón de diseño, de tipo estructural y consiste en definir un objeto/componente (sustituto) por medio del cuál controlamos el acceso a otro (original). Esto nos permite agregar funcionalidad adicional así como simplificar la interacción con el objeto original. Ejemplo. RealSubject : es el objeto que nuestro Proxy va a "sustituir. Tiene 2 métodos: connect y disconnect Proxy : es el objeto que controla el acceso a RealSubject . Internamente crea una referencia de RealSubject y hace las llamadas a los métodos correspondientes. La clase mantiene la misma interfaz (connect y disconnect) pero añade funcionalidades extras ( fireBeforeConnectEvent y fireAfterConnectEvent ) así como un control de errores (try/catch). Con este patron podemos agregar funcionalidades que necesitemos en nuestro proyecto sin tener que modifi

Javascript | Factory Method Pattern

Los patrones de diseño no son mas que un conjunto de soluciones a los diferentes problemas que se presentan en el diseño/desarrollo de software.

Existen un numero finito y cada uno esta clasificado bajo una determinada categoría: comportamiento, de creación y estructurales.

Hoy voy a escribir sobre el Factory Method Pattern (Método Fabrica) que es un patrón de tipo creacional.

Los patrones creacionales proporcionan mecanismos para la creación de objetos (ADC!).


¿De qué va el Factory Method?

Este patrón consiste básicamente en una función que encapsula la creación de diferentes tipos de objetos u objetos de la misma clase y regresa dichas instancias para su posterior manipulación.

Esto nos permite reutilizar la lógica de creación a través de nuestra aplicación haciendo nuestros código mas flexible.

Veamos algunos ejemplos:


Simple Factory Method

En el ejemplo anterior definimos una fábrica (createActiveUser) bastante sencilla que nos permite crear diferentes usuarios.

El método recibe el nombre y la edad como parámetros, cuyos valores son usados a la hora de crear el objeto literal que al final es devuelto por la función.

Pero donde realmente brilla este patrón es cuando la lógica de creación depende configuraciones dinámicas que se definen en tiempo de ejecución.


A more complex Factory

En este ejemplo podemos observar una fábrica (createNewVehicle) más compleja que recibe una colección de opciones y las inyecta a la instancia del vehículo especificado.

Estas opciones pueden provenir de alguna fuente externa a nuestra aplicación/modulo como un archivo, algún servicio web, etc.

Al final el objeto creado es retornado inmediatamente.


Dependiendo del gusto del programador la implementación puede variar un poco pero definitivamente es un patrón a tener en cuenta a la hora de escribir nuestro código.


See you, internet cowboy

Comentarios

Entradas populares