fabricas abstractas

Páginas: 5 (1205 palabras) Publicado: 13 de junio de 2014






















Identificación de patrones de diseño para la autenticación en aplicaciones.
Fábrica Abstracta
Abstract Factory (Fábrica Abstracta) es un patrón de diseño para el desarrollo de software.
El patrón se basa en algo fundamental: crear objetos. No deja de ser una fábrica o factoría (Factory). Partiendo del concepto fábrica ahora si podemoselevarlo, y llevar a la fábrica abstracta.

Se dice que es Abstracta no sólo por el hecho de que hay una clase abstracta de la que hereda una fábrica concreta, sino además por el hecho de la relación conceptual existente entre la Fábrica y los Productos (lo que crea la fábrica).
Conceptualmente, implica que existe una familia de Productos, englobados en una categoría... y cada categoríaimplementa a su manera, el concepto que describe.
Si, suena chino...
Veámoslo de forma "gráfica". La Fábrica abstracta se emplea cuando existe N Fabricas, que emplean los mismos M Productos abstractos.
Lo que se busca es definir una Fábrica Abstracta que contenga lo "común" y básico a todas las Fábricas y luego, dejar que cada Fábrica extienda al concepto. Por otro lado, la Fábrica Abstractaentiende M Productos abstractos, por tanto ya es obligación de cada Fábrica Concreta definir concretamente sus M Productos Concretos.
Aspecto estático

La estructura típica del patrón Abstract Factory es la siguiente:
Cliente: La clase que llamará a la factoría adecuada ya que necesita crear uno de los objetos que provee la factoría, es decir, Cliente lo que quiere es obtener una instancia dealguno de los productos (ProductoA, ProductoB).
AbstractFactory: Es la definición de la interfaces de las factorías. Debe de proveer un método para la obtención de cada objeto que pueda crear. ("crearProductoA()" y "crearProductoB()")
Factorías Concretas: Estas son las diferentes familias de productos. Provee de la instancia concreta de la que se encarga de crear. De esta forma podemos tener unafactoría que cree los elementos gráficos para Windows y otra que los cree para Linux, pudiendo poner fácilmente (creando una nueva) otra que los cree para MacOS, por ejemplo.
Producto abstracto: Definición de las interfaces para la familia de productos genéricos. En el diagrama son "ProductoA" y "ProductoB". En un ejemplo de interfaces gráficas podrían ser todos los elementos: Botón, Ventana,Cuadro de Texto, Combo... El cliente trabajará directamente sobre esta interfaz, que será implementada por los diferentes productos concretos.
Producto concreto: Implementación de los diferentes productos. Podría ser por ejemplo "BotónWindows" y "BotónLinux". Como ambos implementan "Botón" el cliente no sabrá si está en Windows o Linux, puesto que trabajará directamente sobre la superclase ointerfaz.
Un ejemplo
Veremos un ejemplo didáctico y basado en el libro Head First Design Patterns, de O'Reilly.
Supongamos que disponemos de una cadena de pizzerías. Para crear pizzas disponemos de un método abstracto en la clase Pizzería que será implementada por cada subclase de Pizzería.
abstract Pizza crearPizza()
Concretamente se creará una clase PizzeríaZona por cada zona, por ejemplo laPizzería de New York sería PizzeriaNewYork y la de Californía PizzeríaCalifornia que implementarán el método con los ingredientes de sus zonas.
Las pizzas son diferentes según las zonas. No es igual la pizza de New York que la pizza de California. Igualmente, aunque usarán los mismos ingredientes (tomate, mozzarella...) no los obtendrán del mismo lugar, cada zona los comprará donde lo tenga más cerca.Así pues podemos crear un método creador de Pizza que sea
Pizza(FactoriaIngredientes fi);
Como vemos utilizamos la factoría abstracta (no las concretas de cada zona, como podría ser IngredientesNewYork o IngredientesCalifornia). Pizza podrá obtener los ingredientes de la factoría independientemente de donde sea. Sería fácil crear nuevas factorías y añadirlas al sistema para crear pizzas con...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • fabricas abstractas
  • Fabricas abstractas
  • Patrón de diseño: fabrica abstracta
  • .Métodos Abstractos, Métodos De Fabrica, Exepciones.
  • abstracto
  • abstracto
  • Abstract
  • abstracto

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS