Páginas

miércoles, 23 de octubre de 2013

Patrón Abstract Factory: La Fábrica de Vehículos

Patrón Abstract Factory

 La Fábrica de Vehículos






"Una factoría es un objeto que maneja la creación de otros objetos. Las factorías se utilizan cuando la creación de un objeto implica algo más que una simple instanciación. Los siguientes ejemplos son casos donde una factoría puede ayudar:
  • Es necesario acceder a algún recurso para la creación y configuración de un objeto.
  • No conocemos hasta el momento preciso de la instanciación qué tipo concreto de objeto se va a instanciar.

En estos casos, en lugar de que sea el propio objeto quien se encargue de todos los aspectos relativos a la creación, se crea otro objeto que lo haga. De esta manera, se libera al objeto que va a ser creado de aquellas responsabilidades que no le corresponden pero que son necesarias para su creación, manteniendo su independencia." (referencia (1) blog tratandodeentenderlo)
ref 2: http://lineadecodigo.com/patrones/patron-abstract-factory/

Ejemplo: La fábrica de vehículos.
Vamos a realizar el ejemplo que expone   (ref. 3 http://codejavu.blogspot.com.es/2013/07/ejemplo-patron-abstract-factory.html), en Gambas3.

Problema:
Se solicita la creación de diferentes vehículos de transporte (Buses, MicroBusBus y Taxis) sin que se especifique en detalle la forma de su creación.
Solución:
Utilizamos el patrón Abstract Factory para independizar la forma como crearemos los objetos, de esta manera creamos familias de objetos de tipo Vehículo delegando el proceso y sin tener que entrar en detalles desde la clase solicitante.

Esquemas de las clases a crear:


Esquema del proyecto en Gambas3:


Las interfases: 
Clases Vehiculo
-

Clase Vehiculo de Transporte
-

Las Fábricas
Se componen por la Fabrica de Vehículos Principal que hace el llamado a las fabricas de Objetos Concretos..... estas implementan la interface VehiculoDeTransporte permitiendo crear los vehículos del tipo correspondiente y asignar el respectivo código de creación.....

Clase Fabrica de Vehiculos
Esta clase sera la Fabrica Principal cuenta con un método estático que permitirá la creación de los diferentes tipos de vehículos, aplicamos el concepto de polimorfismo para ejecutar el llamado a la Fabrica correspondiente y crear el objeto concreto solicitado por el cliente.
-

Clase Fabrica de Bus
-
Clase Fabrica de MicroBus

-
Clase Fabrica de Taxi
-

Las clases Concretas:
la Clase Taxi

La Clase Bus

La Clase Microbus

El programa principal:
Este formulario Fmain permite iniciar el sistema, en ella creamos las instancias de Fabricas y mediante un menú de opciones se define y delega que Fabrica inicia el proceso de creación...

-
Programa en ejecución cuando pulsamos sobre el botón "Crear"

Enlace de descarga del ejemplo completo: descarga ejemplo



Enlaces:
(1)http://tratandodeentenderlo.blogspot.com.es/2010/02/patrones-de-diseno-factorias.html
(2)http://lineadecodigo.com/patrones/patron-abstract-factory/
(3)http://codejavu.blogspot.com.es/2013/07/ejemplo-patron-abstract-factory.html

http://en.wikipedia.org/wiki/Factory_method_pattern