0% encontró este documento útil (0 votos)
55 vistas14 páginas

Patrón de Diseño: Factory Method

El patrón Factory Method define una interfaz para crear un objeto, pero deja que sean las subclases las que decidan qué clase instanciar. Esto permite que una clase delegue en sus subclases la responsabilidad de crear objetos. Un ejemplo es crear triángulos (equiláteros, escalenos e isósceles) mediante una clase fábrica que devuelve la subclase de triángulo correspondiente.

Cargado por

Agustin ber
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
55 vistas14 páginas

Patrón de Diseño: Factory Method

El patrón Factory Method define una interfaz para crear un objeto, pero deja que sean las subclases las que decidan qué clase instanciar. Esto permite que una clase delegue en sus subclases la responsabilidad de crear objetos. Un ejemplo es crear triángulos (equiláteros, escalenos e isósceles) mediante una clase fábrica que devuelve la subclase de triángulo correspondiente.

Cargado por

Agustin ber
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

FACTORY METHOD

• Define una interfaz para crear un


objeto, pero deja que sean las
subclases quienes decidan qué clase
instanciar

• Permite que una clase delegue en sus


subclases la creación de objetos

DISEÑO DE SISTEMAS
FACTORY METHOD: ESTRUCTURA
Declara el método de
Define la interfaz creada
factory que devuelve un
por el objeto factory
objeto tipo producto

Creator ...
Product
factoryMethod() product = factoryMethod()
Implementa la
interfaz del
anOperation() ...
producto
ConcreteCreator
ConcreteProduct return new ConcreteProduct
factoryMethod())

Devuelve una instancia


de un producto concreto

DISEÑO DE SISTEMAS
FACTORY METHOD
Ejemplo

Si tenemos que permitir a un cliente crear


triángulos (equiláteros, escalenos e
isósceles)

DISEÑO DE SISTEMAS
FACTORY METHOD
Tenemos nuestro ConcreteProduct y su clase
interfaz class Factory Method

ITriangulo

Triangulo

Equilatero Isosceles Escaleno

5
FACTORY METHOD
Una clase triángulo:

DISEÑO DE SISTEMAS
FACTORY METHOD
Subclase Equilátero

7
FACTORY METHOD
Subclase Isósceles

8
FACTORY METHOD
Subclase Escaleno

9
FACTORY METHOD
Este patrón permite que no tengamos que
decidir qué subclase instanciar, sino que lo
haga el propio método de creación

Podemos agregar una clase creador (factoría)


y su interfaz

DISEÑO DE SISTEMAS
FACTORY METHOD
class Factory Method

ITriangulo
Creator

Triangulo ConcreteCreator

Equilatero Isosceles Escaleno

DISEÑO DE SISTEMAS
FACTORY METHOD
En nuestro ejemplo
class Factory Method

ITriangulo TrianguloFactoryMethod

+ createTriangulo(int, int, int) : void

Triangulo TrianguloFactory

+ createTriangulo(int, int, int) : void

Equilatero Isosceles Escaleno

DISEÑO DE SISTEMAS
FACTORY METHOD

DISEÑO DE SISTEMAS
FACTORY METHOD
El cliente lo crea fácilmente:

DISEÑO DE SISTEMAS

También podría gustarte