-
Notifications
You must be signed in to change notification settings - Fork 0
Closed
Description
Resumen:
Implementar un ejercicio en Java para aplicar el patrón de diseño Strategy.
Descripción:
Se requiere desarrollar un ejemplo práctico en Java que implemente el patrón Strategy, el cual permite definir una familia de algoritmos, encapsularlos y hacerlos intercambiables en tiempo de ejecución, favoreciendo la flexibilidad y evitando el uso excesivo de condicionales.
Requerimientos:
- Crear una interfaz Strategy con un método execute().
- Implementar varias estrategias concretas (ConcreteStrategyA, ConcreteStrategyB, etc.) que definan comportamientos diferentes.
- Crear una clase Context que reciba una Strategy y ejecute su comportamiento.
- Desarrollar una clase Main para demostrar cómo se puede cambiar la estrategia en tiempo de ejecución.
Contexto sugerido:
Un sistema de procesamiento de pagos, donde:
- La interfaz PaymentStrategy define el método pay(double amount).
- Estrategias concretas como CreditCardPayment, PaypalPayment, CryptoPayment.
- La clase ShoppingCart (Context) permite aplicar diferentes métodos de pago sin cambiar su lógica interna.
Criterios de Aceptación:
- El sistema debe permitir cambiar la estrategia en tiempo de ejecución.
- Cada estrategia debe ejecutar su propio comportamiento de forma independiente.
- El ejemplo debe ejecutarse en consola mostrando los diferentes resultados según la estrategia seleccionada.
Diagrama
classDiagram
class Strategy {
+execute()
}
class ConcreteStrategyA {
+execute()
}
class ConcreteStrategyB {
+execute()
}
class Context {
-Strategy strategy
+setStrategy(Strategy s)
+executeStrategy()
}
Strategy <|.. ConcreteStrategyA
Strategy <|.. ConcreteStrategyB
Context --> Strategy
Metadata
Metadata
Assignees
Labels
No labels