Programacion
Enviado por Migueel Fuentes • 22 de Diciembre de 2022 • Ensayo • 413 Palabras (2 Páginas) • 52 Visitas
Patrones de diseño de comportamiento II
Miguel Angel Fuentes Bueno
POO II
Instituto IACC
12/09/2022
Instrucciones
[pic 1]
Desarrollo
- La aplicabilidad del patrón strategy principalmente se debe a la necesidad de ocultar al cliente la información interna de nuestro algoritmo, este facilita la implementación de distintas estrategias o comportamientos específicos en clases hijas por medio de una clase en común.
[pic 2]
A continuación, siguiendo el diagrama como base se ejecuta el siguiente código:
Definiendo interfaz:
package patterns.strategy;
public interface Comision
{ double AplicaComision (double monto);}
Implementación de cada strategy, en este caso para un pago de comisión full.
package patterns.strategy;
public class FullComision implements Comision {
@Override
public double AplicaComision (double monto)
{ return monto * 0.50; }
}
Implementación de pago normal:
package patterns.strategy;
public class NormalComision implements Comision {
@Override public double AplicaComision (double monto)
{ return monto * 0.30; }
}
Ejecutamos estrategia con diferentes montos de venta:
package patterns.strategy;
public class StrategyPatternExample { public static void main(String[] args) {
Comision Comision = getStrategy(1000000);
Context context = new Context(Comision );
System.out.println("Commission for 1000000 = " + context.executeStrategy(1000000)); Comision = getStrategy(500000);
context = new Context(Comision );
System.out.println("Commission for 500000 = " + context.executeStrategy(500000));
Comision = getStrategy(1000000);
context = new Context(Comision );
System.out.println("Commission for 1000000 = " + context.executeStrategy(1000000));
}
private static Comision getStrategy(double monto) {
Comision strategy;
if (monto >= 1000000) {
strategy = new FullComision();
} else if (monto >= 500000 && monto <= 999999) {
strategy = new NormalComision();
} return strategy; }
}
2)
El patron mediador define un objeto que hace como “procesador central”, coordinando las relaciones entre las clases que tienen relacion directa. Todos los objetos se comunican medio el mediador, y este es quien realiza la comunicacion con el resto.
El siguiente codigo es un control de busqueda que indica el resultado de los articulos, y el resultado comunicará al control de detalles cual es el elemento seleccionado para mostrar su detalles.
public class Busqueda {
private ResultControl resultControl;
...