Este documento describe el patrón de diseño Factory. Explica que Factory centraliza la creación de objetos, normalmente de una misma familia, y que delega la responsabilidad de crearlos a una clase factoría. Proporciona ejemplos de cómo usar Factory para crear figuras geométricas, vehículos y determinar si estos son eléctricos o de gasolina.
Este documento describe los patrones de diseño y proporciona ejemplos de su aplicación. Explica que los patrones de diseño capturan soluciones recurrentes a problemas comunes de diseño de software para facilitar la reutilización. Define los elementos que componen un patrón y clasifica patrones como de creación, estructurales o de comportamiento. Incluye descripciones detalladas de patrones como Singleton, Factory Method y Adapter.
Este documento introduce conceptos básicos de programación orientada a objetos como clases, objetos, atributos, operaciones, encapsulación y constructores. Explica que una clase define un tipo de datos definido por el usuario que puede crear múltiples objetos, y cada objeto tiene sus propios valores de atributos. También cubre temas como acceso público y privado, y cómo las clases deben diseñarse de manera descriptiva, simple y cohesiva.
Este documento presenta una sesión sobre patrones de diseño con C#. Cubre objetivos como conocer y recordar prácticas de programación probadas y revisar algunos de los patrones más usados. Explica brevemente los patrones Singleton, Factory Method e Iterator como ejemplos de soluciones comunes a problemas específicos. Concluye que los patrones de diseño son formas de abordar problemas con soluciones probadas y que existen más patrones de los que se cree.
Patrones de Diseño. (Design Patterns).pdfmillonario2
Este documento presenta una introducción a los patrones de diseño. Explica conceptos clave como qué es un patrón de diseño, cómo se describen y clasifican los patrones. Luego describe algunos patrones específicos como Abstract Factory y Singleton, explicando su propósito, motivación, estructura, participantes y colaboraciones. El documento provee una visión general de los patrones de diseño más comunes.
El documento explica el patrón de diseño Builder. Este patrón permite crear diferentes tipos de objetos a partir de un mismo proceso de construcción mediante la utilización de clases constructoras específicas. Se usa un ejemplo de construcción de figuras geométricas como cuadrados, triángulos y rectángulos para ilustrar cómo el patrón Builder permite crear estos objetos de forma independiente a través de constructores dedicados a cada figura.
El documento explica los conceptos básicos de la programación orientada a objetos en C++, incluyendo clases, objetos, encapsulamiento, constructores, destructores y punteros a objetos. Describe las características del modelo de objetos como abstracción, encapsulamiento, modularidad, jerarquía y polimorfismo.
Este documento describe los patrones de diseño y proporciona ejemplos de su aplicación. Explica que los patrones de diseño capturan soluciones recurrentes a problemas comunes de diseño de software para facilitar la reutilización. Define los elementos que componen un patrón y clasifica patrones como de creación, estructurales o de comportamiento. Incluye descripciones detalladas de patrones como Singleton, Factory Method y Adapter.
Este documento introduce conceptos básicos de programación orientada a objetos como clases, objetos, atributos, operaciones, encapsulación y constructores. Explica que una clase define un tipo de datos definido por el usuario que puede crear múltiples objetos, y cada objeto tiene sus propios valores de atributos. También cubre temas como acceso público y privado, y cómo las clases deben diseñarse de manera descriptiva, simple y cohesiva.
Este documento presenta una sesión sobre patrones de diseño con C#. Cubre objetivos como conocer y recordar prácticas de programación probadas y revisar algunos de los patrones más usados. Explica brevemente los patrones Singleton, Factory Method e Iterator como ejemplos de soluciones comunes a problemas específicos. Concluye que los patrones de diseño son formas de abordar problemas con soluciones probadas y que existen más patrones de los que se cree.
Patrones de Diseño. (Design Patterns).pdfmillonario2
Este documento presenta una introducción a los patrones de diseño. Explica conceptos clave como qué es un patrón de diseño, cómo se describen y clasifican los patrones. Luego describe algunos patrones específicos como Abstract Factory y Singleton, explicando su propósito, motivación, estructura, participantes y colaboraciones. El documento provee una visión general de los patrones de diseño más comunes.
El documento explica el patrón de diseño Builder. Este patrón permite crear diferentes tipos de objetos a partir de un mismo proceso de construcción mediante la utilización de clases constructoras específicas. Se usa un ejemplo de construcción de figuras geométricas como cuadrados, triángulos y rectángulos para ilustrar cómo el patrón Builder permite crear estos objetos de forma independiente a través de constructores dedicados a cada figura.
El documento explica los conceptos básicos de la programación orientada a objetos en C++, incluyendo clases, objetos, encapsulamiento, constructores, destructores y punteros a objetos. Describe las características del modelo de objetos como abstracción, encapsulamiento, modularidad, jerarquía y polimorfismo.
Este documento presenta una introducción a los patrones de diseño de software. Explica que un patrón describe un problema común de diseño y una solución probada a ese problema en un contexto particular. Luego, describe algunos patrones comunes como el patrón MVC y cómo separa la lógica de la interfaz de usuario del modelo de datos subyacente. Finalmente, discute el patrón de fábrica y cómo permite crear objetos de manera flexible sin acoplar las clases concretas.
Este documento describe los patrones de diseño, que son soluciones probadas a problemas comunes en el desarrollo de software. Explica que los patrones resuelven problemas de diseño de manera reutilizable. Luego cataloga varios patrones creacionales, estructurales y de arquitectura de software como el patrón MVC. Finalmente, presenta un diagrama del catálogo principal de patrones J2EE.
Tecnológico Nacional de México
Ingeniería en Sistemas Computacionales
Programación Orientada a Objetos
Unidad 2: clases y objetos en C#.Net
Material desarrollado para la asignatura de Programación Orientada a Objetos, que se cursa en el segundo semestre de la carrera de ISC.
Este documento describe tres patrones de diseño: Decorator, FlyWeight y Template Method. Decorator permite agregar dinámicamente funcionalidades a objetos sin herencia. FlyWeight reduce redundancia al compartir información común entre objetos. Template Method define la estructura de un algoritmo en una superclase para que las subclases redefinan ciertos pasos.
Este documento explica qué son los patrones de diseño y proporciona detalles sobre algunos patrones de creación específicos. Define los patrones de diseño como soluciones documentadas a problemas comunes de desarrollo de software. Explica brevemente los patrones Singleton, Prototype y Factory Method, incluyendo sus propiedades, aplicabilidad e implementación.
Los patrones de diseño brindan soluciones probadas a problemas comunes en el desarrollo de software. Se clasifican en creacionales, estructurales y de comportamiento dependiendo del propósito. Algunos ejemplos son el patrón singleton, fábrica abstracta, adaptador y observador. Los patrones mejoran la flexibilidad, reusabilidad y modularidad del diseño orientado a objetos.
El primer documento describe un programa que calcula el cuadrado y el cubo de un número ingresado por el usuario. El segundo documento contiene un programa que realiza las cuatro operaciones aritméticas básicas (suma, resta, multiplicación y división) con dos números ingresados por el usuario. El tercer documento presenta un programa para calcular el área de un triángulo a partir de la base y la altura ingresadas por el usuario.
Clases abstractas e interfaces (AlexandraPerez)Alexandra Pérez
Este documento explica los conceptos de clases abstractas e interfaces en Java. Indica que una clase abstracta puede contener métodos abstractos sin implementación, mientras que las subclases deben implementar esos métodos. También describe que una interfaz especifica qué métodos deben incluir las clases que la implementen, pero no cómo.
Este documento explica conceptos básicos de programación orientada a objetos en Java como clases, objetos, encapsulamiento, constructores, métodos, atributos públicos y privados. Define una clase Estudiante con atributos como nombre, apellido y notas, así como métodos para acceder y modificar estos atributos de forma encapsulada.
Este documento presenta instrucciones para crear estructuras de hormigón y acero utilizando Revit Structure 2009. Explica cómo importar planos de AutoCAD, añadir líneas de rejilla y niveles, y modelar elementos estructurales como pilares, vigas y losas. También muestra cómo crear vistas y planos del modelo analítico terminado.
Ingeniería del Software dirigida por modelos -Versión para incrédulosJordi Cabot
Presentación en el 2do. Foro de Ingeniería de Software
Tendencias para automatizar el desarrollo de software. Hablando de modelado de software, generación de código,...
1) Las clases abstractas definen características comunes de clases derivadas pero no pueden crear objetos directamente. 2) Las clases abstractas pueden incluir métodos abstractos sin implementación que deben implementarse en clases derivadas. 3) Las interfaces definen métodos y constantes que las clases que las implementan deben incluir.
El documento describe el patrón de diseño Abstract Factory. Abstract Factory proporciona una interfaz para crear familias de objetos relacionados sin especificar sus clases concretas. Se usa para crear familias de widgets que comparten características comunes pero tienen diferencias para diferentes sistemas operativos o interfaces gráficas. Abstract Factory aísla el código del cliente de las clases de implementación y permite cambiar fácilmente entre familias de productos.
Slides del taller de Angular 2 realizado en el Campus Madrid de Google el 26 de Septiembre de 2016. Actualizado con la versión final de Angular 2.
Grabación del taller: https://www.youtube.com/watch?v=YVVjXpquzBE
Repositorio de código: https://github.com/codeurjc/ng2-campusmadrid
El documento describe conceptos básicos de programación orientada a objetos en Java como variables, identificadores, clases, objetos, atributos y métodos. Explica que una variable almacena un valor en memoria y que un identificador la identifica de forma única. Indica que una clase define los atributos y comportamientos de un objeto y que un objeto es una instancia concreta de una clase.
El patrón Decorator permite añadir dinámicamente nuevas responsabilidades a un objeto. Se crea una clase abstracta Decorador que mantiene una referencia al objeto que se desea extender y hereda de ella clases concretas que implementan las nuevas responsabilidades. De esta forma se puede combinar funcionalidad de forma flexible sin necesidad de crear subclases para cada posible combinación.
Este documento describe diferentes conceptos relacionados con la programación orientada a objetos, incluyendo sobrecarga de operadores, operadores lógicos, polimorfismo, funciones virtuales y patrones de diseño como Singleton, Factory Method y Abstract Factory. Explica cómo estas características permiten extender clases, reutilizar código y crear familias de objetos relacionados de manera flexible.
Los constructores son métodos especiales que se ejecutan cuando se crea un objeto de una clase. Permiten inicializar los atributos de un objeto de forma automática al momento de crearlo, evitando tener que llamar a métodos de inicialización por separado. El documento explica cómo añadir constructores a la clase Punto para inicializar sus coordenadas x e y al crear objetos Punto.
Model Builder permite combinar herramientas de geoprocesamiento de forma secuencial para simular fenómenos del mundo real y predecir posibles resultados. Automatiza procesos repetitivos y estandariza flujos de trabajo. Los usuarios pueden crear, editar y ejecutar modelos visuales fácilmente así como publicarlos como servicios web.
El documento explica qué son los constructores y para qué sirven. Los constructores son métodos especiales que se ejecutan cuando se crea un objeto de una clase y permiten inicializar los atributos de un objeto. El documento presenta un ejemplo de una clase Punto con constructores que inicializan las coordenadas x e y del punto al crear el objeto.
Este documento presenta una introducción a los patrones de diseño de software. Explica que un patrón describe un problema común de diseño y una solución probada a ese problema en un contexto particular. Luego, describe algunos patrones comunes como el patrón MVC y cómo separa la lógica de la interfaz de usuario del modelo de datos subyacente. Finalmente, discute el patrón de fábrica y cómo permite crear objetos de manera flexible sin acoplar las clases concretas.
Este documento describe los patrones de diseño, que son soluciones probadas a problemas comunes en el desarrollo de software. Explica que los patrones resuelven problemas de diseño de manera reutilizable. Luego cataloga varios patrones creacionales, estructurales y de arquitectura de software como el patrón MVC. Finalmente, presenta un diagrama del catálogo principal de patrones J2EE.
Tecnológico Nacional de México
Ingeniería en Sistemas Computacionales
Programación Orientada a Objetos
Unidad 2: clases y objetos en C#.Net
Material desarrollado para la asignatura de Programación Orientada a Objetos, que se cursa en el segundo semestre de la carrera de ISC.
Este documento describe tres patrones de diseño: Decorator, FlyWeight y Template Method. Decorator permite agregar dinámicamente funcionalidades a objetos sin herencia. FlyWeight reduce redundancia al compartir información común entre objetos. Template Method define la estructura de un algoritmo en una superclase para que las subclases redefinan ciertos pasos.
Este documento explica qué son los patrones de diseño y proporciona detalles sobre algunos patrones de creación específicos. Define los patrones de diseño como soluciones documentadas a problemas comunes de desarrollo de software. Explica brevemente los patrones Singleton, Prototype y Factory Method, incluyendo sus propiedades, aplicabilidad e implementación.
Los patrones de diseño brindan soluciones probadas a problemas comunes en el desarrollo de software. Se clasifican en creacionales, estructurales y de comportamiento dependiendo del propósito. Algunos ejemplos son el patrón singleton, fábrica abstracta, adaptador y observador. Los patrones mejoran la flexibilidad, reusabilidad y modularidad del diseño orientado a objetos.
El primer documento describe un programa que calcula el cuadrado y el cubo de un número ingresado por el usuario. El segundo documento contiene un programa que realiza las cuatro operaciones aritméticas básicas (suma, resta, multiplicación y división) con dos números ingresados por el usuario. El tercer documento presenta un programa para calcular el área de un triángulo a partir de la base y la altura ingresadas por el usuario.
Clases abstractas e interfaces (AlexandraPerez)Alexandra Pérez
Este documento explica los conceptos de clases abstractas e interfaces en Java. Indica que una clase abstracta puede contener métodos abstractos sin implementación, mientras que las subclases deben implementar esos métodos. También describe que una interfaz especifica qué métodos deben incluir las clases que la implementen, pero no cómo.
Este documento explica conceptos básicos de programación orientada a objetos en Java como clases, objetos, encapsulamiento, constructores, métodos, atributos públicos y privados. Define una clase Estudiante con atributos como nombre, apellido y notas, así como métodos para acceder y modificar estos atributos de forma encapsulada.
Este documento presenta instrucciones para crear estructuras de hormigón y acero utilizando Revit Structure 2009. Explica cómo importar planos de AutoCAD, añadir líneas de rejilla y niveles, y modelar elementos estructurales como pilares, vigas y losas. También muestra cómo crear vistas y planos del modelo analítico terminado.
Ingeniería del Software dirigida por modelos -Versión para incrédulosJordi Cabot
Presentación en el 2do. Foro de Ingeniería de Software
Tendencias para automatizar el desarrollo de software. Hablando de modelado de software, generación de código,...
1) Las clases abstractas definen características comunes de clases derivadas pero no pueden crear objetos directamente. 2) Las clases abstractas pueden incluir métodos abstractos sin implementación que deben implementarse en clases derivadas. 3) Las interfaces definen métodos y constantes que las clases que las implementan deben incluir.
El documento describe el patrón de diseño Abstract Factory. Abstract Factory proporciona una interfaz para crear familias de objetos relacionados sin especificar sus clases concretas. Se usa para crear familias de widgets que comparten características comunes pero tienen diferencias para diferentes sistemas operativos o interfaces gráficas. Abstract Factory aísla el código del cliente de las clases de implementación y permite cambiar fácilmente entre familias de productos.
Slides del taller de Angular 2 realizado en el Campus Madrid de Google el 26 de Septiembre de 2016. Actualizado con la versión final de Angular 2.
Grabación del taller: https://www.youtube.com/watch?v=YVVjXpquzBE
Repositorio de código: https://github.com/codeurjc/ng2-campusmadrid
El documento describe conceptos básicos de programación orientada a objetos en Java como variables, identificadores, clases, objetos, atributos y métodos. Explica que una variable almacena un valor en memoria y que un identificador la identifica de forma única. Indica que una clase define los atributos y comportamientos de un objeto y que un objeto es una instancia concreta de una clase.
El patrón Decorator permite añadir dinámicamente nuevas responsabilidades a un objeto. Se crea una clase abstracta Decorador que mantiene una referencia al objeto que se desea extender y hereda de ella clases concretas que implementan las nuevas responsabilidades. De esta forma se puede combinar funcionalidad de forma flexible sin necesidad de crear subclases para cada posible combinación.
Este documento describe diferentes conceptos relacionados con la programación orientada a objetos, incluyendo sobrecarga de operadores, operadores lógicos, polimorfismo, funciones virtuales y patrones de diseño como Singleton, Factory Method y Abstract Factory. Explica cómo estas características permiten extender clases, reutilizar código y crear familias de objetos relacionados de manera flexible.
Los constructores son métodos especiales que se ejecutan cuando se crea un objeto de una clase. Permiten inicializar los atributos de un objeto de forma automática al momento de crearlo, evitando tener que llamar a métodos de inicialización por separado. El documento explica cómo añadir constructores a la clase Punto para inicializar sus coordenadas x e y al crear objetos Punto.
Model Builder permite combinar herramientas de geoprocesamiento de forma secuencial para simular fenómenos del mundo real y predecir posibles resultados. Automatiza procesos repetitivos y estandariza flujos de trabajo. Los usuarios pueden crear, editar y ejecutar modelos visuales fácilmente así como publicarlos como servicios web.
El documento explica qué son los constructores y para qué sirven. Los constructores son métodos especiales que se ejecutan cuando se crea un objeto de una clase y permiten inicializar los atributos de un objeto. El documento presenta un ejemplo de una clase Punto con constructores que inicializan las coordenadas x e y del punto al crear el objeto.
1. Introduccion a las excavaciones subterraneas (1).pdfraulnilton2018
Cuando las excavaciones subterráneas son desarrolladas de manera artesanal, se conceptúa a la excavación como el “ que es una labor efectuada con la mínima sección posible de excavación, para permitir el tránsito del hombre o de
cémilas para realizar la extracción del material desde el
frontón hasta la superficie
Cuando las excavaciones se ejecutan controlando la sección de excavación, de manera que se disturbe lo menos posible la
roca circundante considerando la vida útil que se debe dar a la roca, es cuando aparece el
concepto de “ que abarca,
globalmente, al proceso de excavación, control de la periferia, sostenimiento, revestimiento y consolidación de la excavación
Equipo 4. Mezclado de Polímeros quimica de polimeros.pptxangiepalacios6170
Presentacion de mezclado de polimeros, de la materia de Quimica de Polímeros ultima unidad. Se describe la definición y los tipos de mezclado asi como los aditivos usados para mejorar las propiedades de las mezclas de polimeros
La energía radiante es una forma de energía que
se transmite en forma de ondas
electromagnéticas esta energía se propaga a
través del vacío y de ciertos medios materiales y
es fundamental en una variedad naturales y
tecnológicos
ascensor o elevador es un sistema de transporte vertical u oblicuo, diseñado...LuisLobatoingaruca
Un ascensor o elevador es un sistema de transporte vertical u oblicuo, diseñado para mover principalmente personas entre diferentes niveles de un edificio o estructura. Cuando está destinado a trasladar objetos grandes o pesados, se le llama también montacargas.
Metodología - Proyecto de ingeniería "Dispensador automático"cristiaansabi19
Esta presentación contiene la metodología del proyecto de la materia "Introducción a la ingeniería". Dicho proyecto es sobre un dispensador de medicamentos automáticos.
Los puentes son estructuras esenciales en la infraestructura de transporte, permitiendo la conexión entre diferentes
puntos geográficos y facilitando el flujo de bienes y personas.
ESPERAMOS QUE ESTA INFOGRAFÍA SEA UNA HERRAMIENTA ÚTIL Y EDUCATIVA QUE INSPIRE A MÁS PERSONAS A ADENTRARSE EN EL APASIONANTE CAMPO DE LA INGENIERÍA CIVIŁ. ¡ACOMPAÑANOS EN ESTE VIAJE DE APRENDIZAJE Y DESCUBRIMIENTO
5. Patrón de diseño: Definición
Un patrón de diseño:
es una solución a un problema en un contexto
particular
es recurrente (lo que hace la solución relevante a
otras situaciones)
enseña (permite entender cómo adaptarlo a la
variante particular del problema donde se quiere
aplicar)
tiene un nombre para referirse al patrón
Los patrones facilitan la reutilización de diseños y
arquitecturas software que han tenido éxito
están basados en las buenas práctica de POO
9. Patrón de diseño: Tipos
Patrones de Creación
Abstraen la forma en la que se crean los objetos,
permitiendo la creación de las clases de forma genérica
dejando para más tarde la decisión de qué clases crear o
cómo crearlas
Ejemplos
Factory
Singleton
Prototype
Clasificación
Patrones de creación de clase: la decisión se toma en los
constructores de las clases y usan la herencia para determinar
la creación de las instancias
Patrones de creación de objeto: se modifica la clase desde el
objeto
11. Patrón de diseño: Tipos
Patrones de Comportamiento
Estudian las relaciones entre llamadas entre los
diferentes objetos, normalmente ligados con la
dimensión temporal.
Ejemplos
Observador
Estrategia
13. Patrón de diseño: Tipos
Patrones Estructurales
Hacen relación a como las clases y los objetos se
combinan para dar lugar a estructuras más
complejas.
Ejemplos
Adapter: Patrones estructurales asociados a clases y
utilizan la herencia.
Composite, Decorator, Facade: Patrones estructurales
asociados a objetos y utilizan la composición.
14. Patrón de diseño: Singleton
Un singleton es una clase que tiene una lógica que
solamente le permite instanciarse una vez en un
objeto, es decir, que solamente se podrá llamar a su
constructor una sola vez.
Es importante para algunas clases tener exactamente
una sola instancia. Por ejemplo:
Aunque puede haber muchas impresoras en un sistema,
debe haber solo una cola de impresora.
Deberá haber sólo un sistema de archivos y un manejador
de ventanas.
Una cuenta de sistema estará dedicada a servir a una
compañía
Patrones
de
Creación
15. Patrón de diseño: Singleton
Ejemplo
public class Singleton {
/**
*Para permitir la extensión de la clase, el *constructor se define
como protegido.
*/
protected Singleton() {
// ...
}
/**
*Acceso privado al único objeto de la clase
*/
static private Singleton instance = null;
static public Singleton getInstance() {
if(null == instance) {
instance = new Singleton();
}
return instance;
}
Patrones
de
Creación
16. Patrón de diseño: Factory
Problema
¿Quién debe ser el responsable para la creación
de objetos, se desea separar las
responsabilidades de creación para mejorar la
cohesión?
Solución
Crear un objeto factoría que maneje la creación
de objetos.
Patrones
de
Creación
17. Patrón de diseño: Factory
La idea que se esconde detrás de este patrón
es la de centralizar el sitio donde se crean
los objetos, normalmente donde se crean
objetos de una misma "familia", como podría
ser componentes visuales, componentes de la
lógica del negocio, o objetos concurrentes en
el tiempo.
Patrones
de
Creación
18. Patrón de diseño: Factory
Ejemplo
Suponiendo la clase base figura para un conjunto de
figuras geométricas:
public abstract class Figura {
int lado = 0
public figura (int lado) {
this.lado = lado;
}
public abstract int getArea ();
public abstract void dibujar (Graphics g, int x, int y);
}
Patrones
de
Creación
19. Patrón de diseño: Factory
public Cuadrado extends Figura{
public Cuadrado (int lado) {
super (lado);
}
public int getArea () {
return (lado x lado);
}
public void dibujar (Graphics g, int x, int y){
g.setColor (Color.black);
g.setDrawRect (x, y, lado, lado);
}
}
public Circulo extends Figura{
public Circulo (int lado) {
super (lado);
}
public int getArea () {
return (Math.PI x lado x lado);
}
public void dibujar (Graphics g, int x, int y){
g.setColor (Color.black);
g.setDrawArc (x, y, lado, lado, 0, 360);
}
}
Clase hija cuadrado Clase hija círculo
20. Patrón de diseño: Factory
Esta factoría funciona recibiendo un argumento que
determina que clase de figura crear:
public class FactoriaDeFiguras {
public static final int CUADRADO = 0
public static final int CIRCULO = 1
public Figura getFigura (int tipo, int lado) {
if (tipo == this.CUADRADO) {
return (new Cuadrado (lado))
}
else {
return (new Circulo (lado))
}
}
}
Patrones
de
Creación
Que figura
crear
Factoría
21. Patrón de diseño: Factory
public abstract class Automovil {
protected String modelo;
protected String color;
protected int potencia;
protected double espacio;
public Automovil(String modelo, String color,
int potencia, double espacio) {
this.modelo = modelo;
this.color = color;
this.potencia = potencia;
this.espacio = espacio;
}
public abstract String
mostrarCaracteristicas();
}
public class AutomovilElectricidad extends
Automovil{
public AutomovilElectricidad(String modelo,
String color, int potencia, double espacio) {
super(modelo, color, potencia, espacio);
}
@Override
public String mostrarCaracteristicas() {
return "Automovil electrico{" + "modelo="
+ modelo + ", color=" + color + ", potencia=" +
potencia + ", espacio=" + espacio + '}';
}
}
22. Patrón de diseño: Factory
public class AutomovilGasolina extends
Automovil{
public AutomovilGasolina(String
modelo, String color, int potencia, double
espacio) {
super(modelo, color, potencia,
espacio);
}
@Override
public String mostrarCaracteristicas() {
return "Automovil gasolina{" +
"modelo=" + modelo + ", color=" + color
+ ", potencia=" + potencia + ", espacio="
+ espacio + '}';
}
}
public abstract class Scooter {
protected String modelo;
protected String color;
protected int potencia;
public Scooter(String modelo, String
color, int potencia) {
this.modelo = modelo;
this.color = color;
this.potencia = potencia;
}
public abstract String
mostrarCaracteristicas();
}
23. Patrón de diseño: Factory
public class ScooterElectricidad extends
Scooter{
public ScooterElectricidad(String
modelo, String color, int potencia) {
super(modelo, color, potencia);
}
@Override
public String mostrarCaracteristicas() {
return "Scooter electrico{" +
"modelo=" + modelo + ", color=" + color
+ ", potencia=" + potencia + '}';
}
}
public class ScooterGasolina extends
Scooter{
public ScooterGasolina(String modelo,
String color, int potencia) {
super(modelo, color, potencia);
}
@Override
public String mostrarCaracteristicas() {
return "Scooter gasolina{" +
"modelo=" + modelo + ", color=" + color
+ ", potencia=" + potencia + '}';
}
}
24. Patrón de diseño: Factory
public interface FabricaVehiculo {
public Automovil crearAutomovil(String modelo, String color,
int potencia, double espacio);
public Scooter crearScooter(String modelo, String color, int
potencia);
}
public class FabricaVehiculoGasolina implements
FabricaVehiculo{
@Override
public Automovil crearAutomovil(String modelo, String color,
int potencia, double espacio){
return new AutomovilGasolina(modelo, color, potencia,
espacio);
}
@Override
public Scooter crearScooter(String modelo, String color, int
potencia){
return new ScooterGasolina(modelo, color, potencia);
}
}
public class FabricaVehiculoElectricidad implements
FabricaVehiculo{
@Override
public Automovil crearAutomovil(String modelo, String color,
int potencia, double espacio){
return new AutomovilElectricidad(modelo, color, potencia,
espacio);
}
@Override
public Scooter crearScooter(String modelo, String color, int
potencia){
return new ScooterElectricidad(modelo, color, potencia);
}
}
25. Patrón de diseño: Factory
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
FabricaVehiculo fabrica;
Automovil [] autos = new Automovil[nAutos];
Scooter [] scooters = new Scooter[nScooters];
System.out.println("Desea utilizar: 1. Vehículos eléctricos 2. Vehículos de gasolina");
String eleccion = reader.next();
if(eleccion.equals("1")){
fabrica = new FabricaVehiculoElectricidad();
}
else{
fabrica = new FabricaVehiculoGasolina();
}
System.out.println("----- Creando Automóviles -----");
for(int i = 0; i < nAutos; i++){
System.out.println("Digite el modelo");
String modelo = reader.next();
System.out.println("Digite el color");
String color = reader.next();
System.out.println("Digite la potencia");
String potencia = reader.next();
System.out.println("Digite el espacio");
String espacio = reader.next();
autos[i] = fabrica.crearAutomovil(modelo, color, Integer.parseInt(potencia),
Integer.parseInt(espacio));
}
System.out.println("----- Creando Scooters -----");
for(int i = 0; i < nScooters; i++){
System.out.println("Digite el modelo");
String modelo = reader.next();
System.out.println("Digite el color");
String color = reader.next();
System.out.println("Digite la potencia");
String potencia = reader.next();
scooters[i] = fabrica.crearScooter(modelo, color, Integer.parseInt(potencia)
}
System.out.println("----- Información Automóviles -----");
for(Automovil auto : autos){
System.out.println(auto.mostrarCaracteristicas());
}
System.out.println("----- Información Scooters -----");
for(Scooter scooter : scooters){
System.out.println(scooter.mostrarCaracteristicas());
}
}
Notas del editor
Tratan de la inicialización y configuración de clases y objetos
Strategy modifica la lógica de los objetos individuales
El patrón Strategy proporciona objetos que implementan un interface particular con el propósito
de alterar o determinar el comportamiento de un objeto cliente
Ejemplo:
El patrón Strategy tiene un interface llamado Ordenacion que proporciona una forma común
para acceder al algoritmo de ordenación encapsulado en sus subclases, es decir en las clases
que implementan el interface Ordenacion, que en este caso son: AlgBurbujaAsc y
AlgBurbujaDesc. También existe otra clase llamada Algoritmos que es la que controla la
selección y uso del objeto particular Strategy. Es decir mediante esta clase se selecciona el
algoritmo a utilizar, en nuestro caso AlgBurbujaAsc o AlgBurbujaDesc y se llama a su
método ordenar correspondiente.