sábado, 9 de mayo de 2009
Factory Method

Factory Method es un patrón creacional que define una interfaz para crear objetos de tipo genérico permitiendo a las subclases decidir qué tipo de objeto concreto crear.

Características generales de este patrón:

Nombre:

Factory Method.

Proposito:

Definir una interfaz para crear objetos de tipo genérico permitiendo a las subclases decidir qué tipo de objeto concreto crear.

También conocido como:

Constructor Virtual.

Aplicabilidad:

Este patrón se utiliza generalmente cuando:

· Una clase no puede anticipar la clase de objetos que debe crear.

· Se necesita que las subclases especifiquien los objetos a ser creados.

· Las clases delegan responsabilidades a uno de varios ayudantes de subclases, y desea localizar el conocimiento del que la subclase ayudante es delegada.

· Para crear un marco extensible. Esto significa que permite flexibilidad al dejar algunas decisiones, como el tipo específico de objeto a crear, hasta más tarde.

· Tomar una subclase, en lugar de su superclase, para decidir qué tipo de objeto crear.

· Para crear un objeto, pero no qué tipo de objeto.

· Cuando necesita varios constructores sobrecargados con la misma lista de parámetros, que no está permitido en Java. En cambio, use Métodos de fábrica con varios nombres diferentes.


Estructura:

Participantes:

· Product: Define la interfaz de los objetos que puede crear la fábrica.

· ConcreteProduct: Implementa la interfaz Producto.

· Creator: Es la interfaz que define el método de fábrica (factoryMethod):

v Declara el método fábrica que devuelve un objeto de tipo Producto.

v También puede definir una implementación por defecto del método fábrica que devuelve un predeterminado objeto de ConcreteProduct.

· ConcreteCreator: La clase que se extiende de Creador y que ofrece una implementación para el factoryMethod. Este puede devolver cualquier objeto que implemente la interfaz Producto. Anula el método fábrica para devolver una instancia de ConcreteProduct.

Colaboraciones:

Creador se basa en sus subclases para definir el método fábrica para que devuelva una instancia de ConcreteProduct, es decir, Creador delega en las subclases la creación de los objetos.

Consecuencias:

· Eliminan la necesidad de especificar las clases de los objetos creados.

· El código solo trabaja con interfaces.

· Es posible que los clientes tengan que crear una subclase de creador solo para crear un objeto.


patrones relacionados:

· Abstract factory.

· Prototype.

· Template method.

Etiquetas: , , ,

 
posted by Camilo Mojica at 19:01 | Permalink |


0 Comments: