Es un patrón de diseño creacional, define una interfaz para crear un objeto, pero dejando en manos de las subclases la decisión de qué clase concreta instanciar.
Ejemplo: Aplicación que instancia distintos tipos de documentos. Código:FactoryMethod
Roles:
- Producto(Documento): interfaz de los objetos que serán creados por el método factoría.
- ProductoConcreto(DocWord y DocExcel): implementación de los métodos de producto(documento).
- Creador(Aplicación): declara el método factoría (creaDocumento). Se puede definir una implementación que devuelva un objeto de tipo Producto (documental).
- CreadorConcreto (CreaExcel y CreaWord): sobrescribe el método factoría (crearDocumento) y devuelve un objeto de tipo Producto.
Con el patrón Factory Method podemos desacoplar los productos (Word, Excel, Imágenes,...) de la aplicación.
Necesitaremos crear una clase hija de Creador por cada producto que queramos utilizar en la aplicación.
Existen dos variantes:
- Creador es una clse abstracta y no implementa el método factoría (caso del ejemplo).
- Creador es concreta y proporciona una implementación por defecto.
No hay comentarios:
Publicar un comentario