La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

FACTORY METHOD Creación a nivel de clases.

Presentaciones similares


Presentación del tema: "FACTORY METHOD Creación a nivel de clases."— Transcripción de la presentación:

1 FACTORY METHOD Creación a nivel de clases

2 Intención Crear marcos de referencia apropiados para las aplicaciones en los que se mantengan adecuadas relaciones entre objetos. El llamado “Factory Method” o “Virtual Builder”, es un patrón de diseño que define una interfaz para crear un objeto, pero dejando que las subclases de este decidan qué clase de objeto se va a instanciar. El Factory Method hace que una clase deje la creación de objetos a sus subclases.

3 Motivación *En un marco de trabajo de aplicaciones de documentos se debe poder presentar distintos tipos de documentos. *El marco de trabajo maneja dos abstracciones: Documento: los distintos tipos se definen como subclases Aplicación: sabe cuándo crear un documento, pero no su tipo.

4 Aplicabilidad -Cuando una clase no puede anticipar la clase de objetos que va a crear. -Cuando una clase quiere que sus subclases especifiquen el tipo de objetos que crean.

5 Participantes Producto: Define la interfaz de los objetos que crea el método de fabricación. ProductoConcreto: Implementa la interfaz Producto. Creador: Declara el método de fabricación, el cual devuelve un objeto del tipo Producto. También puede definir una implementación predeterminada del método de fabricación que devuelve un objeto ProductoConcreto. Puede llamar al método de fabricación para crear un objeto Producto. CreadorConcreto: Redefine el método de fabricación para devolver una instancia de ProductoConcreto.

6 Consecuencias (Positivas)
-El Factory Method elimina la necesidad de ligar clases específicas al código, dejando que este solo lidie con la interfaz del producto. Entonces puede trabajar con cualquier clase de ProductoConcreto que se defina. -Crear un objeto con un FactoryMethod siempre es más flexible que crearlo directamente. Brinda a las subclases la capacidad de crear versiones extendidas de un objeto.

7 “Crea objetos con una operación distinta, así las subclases pueden cambiar la forma en que son creados” Esto asegura que los diseñadores de las subclases pueden cambiar la clase de objetos que se crean.

8 Consecuencias (Negativas)
Una desventaja potencial es que se tendrá que hacer de la clase Creadora una subclase solo para crear un particular ProductoConcreto. Se tiene que lidiar con una clase más de abstracción. Uno de los principales inconvenientes que puede presentar este patrón es que puede requerir crear una nueva clase simplemente para cambiar la clase de Producto.

9 Implementación Existen de dos tipos:
Cuando la clase Creadora es abstracta: Necesita que las subclases redefinen una implementación para el método. Resuelve el problema de instanciar clases que aún son desconocidas. Cuando la clase Creadora no es abstracta: Es una clase concreta y define una implementación default para el Factory Method. En este caso este método se usa principalmente para dar flexibilidad.

10 if tuyo return TuProducto
Factory Method parametrizado: Una variación de este patrón es en la cual este método puede crear distintos tipos de productos. Toma un parámetro para identificar el tipo de objeto que se quiere crear. Todos los objetos que el método cree compartirán la interfaz de Producto. if mio return MiProducto if tuyo return TuProducto

11

12

13

14

15

16 Usos Conocidos -Frameworks que soportan aplicaciones MDI
-Creación de proxies en middlewares -JDK. Clase URLConnection

17 Patrones Relacionados
* Abstract Factory. Se suele implementar con métodos fábrica. * Template Method. Los métodos fábrica se suelen invocar desde métodos plantilla.

18 https://sourcemaking.com/design_patterns/factory_method
GAMMA, Erich ,"Design Patterns. Elements of Reusable Object-Oriented Software",Addison-Wesley


Descargar ppt "FACTORY METHOD Creación a nivel de clases."

Presentaciones similares


Anuncios Google