100% encontró este documento útil (2 votos)
482 vistas9 páginas

Cesar Lopez Control7

Este documento presenta un control sobre patrones de diseño de comportamiento para la asignatura de Programación Orientada a Objetos II. Incluye tres preguntas donde se pide aplicar los patrones Strategy, Interpreter, Mediator y Chain of Responsibility a problemas de control de inventario y relación entre artículos y compradores. Se incluye código de ejemplo y explicaciones para cada patrón. Al final se lista la bibliografía utilizada.

Cargado por

Cesar
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 DOCX, PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (2 votos)
482 vistas9 páginas

Cesar Lopez Control7

Este documento presenta un control sobre patrones de diseño de comportamiento para la asignatura de Programación Orientada a Objetos II. Incluye tres preguntas donde se pide aplicar los patrones Strategy, Interpreter, Mediator y Chain of Responsibility a problemas de control de inventario y relación entre artículos y compradores. Se incluye código de ejemplo y explicaciones para cada patrón. Al final se lista la bibliografía utilizada.

Cargado por

Cesar
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 DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 9

Patrones de diseño de comportamiento II

Nombre Alumno

Cesar Andrés López Sotelo

Nombre Asignatura

Programación Orientada a Objetos II

Instituto IACC

26 de Julio de 2021
Desarrollo

INSTRUCCIONES: Las respuestas a las preguntas del control, deben ser una elaboración

propia. Usted se apoyará en los contenidos de la semana y también puede hacerlo en otros

textos, pero siempre debe identificar los autores y citar las fuentes. Recuerde agregar la

bibliografía al final del control en formato APA. Cuide su redacción y ortografía.

DESARROLLO DEL CONTROL:

1) Teniendo como referencia la automatización de un sistema de control de inventarios de

una tienda de artículos de peluquería, usted cómo desarrollador experto ¿cómo


aplicaría el patrón de comportamiento strategy?
Recuerde incluir el código y explicación al respecto

Este patrón facilita la implementación de distintas estrategias o comportamientos específicos en


clases hijas a través de una clase común. Así, en tiempo de ejecución y en función de algún
parámetro como el tipo de instancia, se ejecutará la estrategia concreta para esa situación.
Para implementar el patrón Strategy en el sistema tendremos diferentes comisiones que se pagan
según un monto de venta. Si el monto de venta es mayor se paga mayor comisión para el
vendedor. Definimos la interfaz Strategy de la cual crearemos estrategias puntuales para cada
caso.
package patterns.strategy; public interface Comision
{ double AplicaComision (double monto); }

Pensamos en las implementaciones de cada Strategy. Implementación para un pago de una


comisión full.

package patterns.strategy;
public class FullComision implements Comision { @Override
public double AplicaComision (double monto) { return monto * 0.50; }}

Implementación para un pago de una comisión normal.


package patterns.strategy;
public class NormalComision implements Comision { @Override
public double AplicaComision (double monto) { return monto * 0.30; }}
Implementación para un pago de una comisión regular.
package patterns.strategy;
public class RegularComision implements Comision { @Override
public double AplicaComision (double monto) { return monto * 0.10; }}

Probamos la 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();
} else {
strategy = new RegularComision();
}
return strategy;
}
}
2) En la pregunta anterior se presenta un problema con respecto a la relación entre los
objetos: artículos y comprador, se requiere de su trabajo para solucionar dicho
problema aplicando los patrones de diseño de comportamientos interpreter y mediator
Recuerde incluir el código y explicación al respecto.

El patrón Interpreter es uno de los patrones de diseño más complejos debido a que para
su funcionalidad debe combinar técnicas de programación orientada a objetos avanzada,
las principales cosas con las que nos enfrentaremos son la Herencia, Polimorfismo y la
Recursividad. Este patrón se basa en el recorrido recursivo del patrón Composite para
Interpretar las sentencias que se le solicita procesar.
Por otro lado el patrón de diseño Mediator se encarga de gestionar la forma en que un
conjunto de clases se comunican entre sí. El diseño Mediator es útil cuando se utiliza gran
cantidad de clases que se comunican entre sí de forma directa ya que mediante la
Implementación de este patrón se pude crear una capa de comunicación bidireccional.

La construcción del árbol sintáctico, llamado análisis sintáctico, también está repartida en las
clases, a saber la forma de métodos de clase (métodos precedidos por la palabra reservada static
en Java).
El código fuente de la clase Expresion que aparece a continuación. La parte relativa a la
evaluación se limita a la declaración de la firma del método evalua.
A continuación se muestra el código fuente de las subclases de Expresion. En primer lugar la
clase concreta PalabraClave cuyo método evalua busca la palabra-clave en la descripción. Esta
clase gestiona a su vez el análisis sintáctico de la palabra-clave.
La clase abstracta OperadorBinario gestiona los enlaces hacia los dos operandos del operador.

La clase concreta OperadorO implementa el método evalua y gestiona el análisis de un término.

La clase concreta Operador Y implementa el método evalua y gestiona el análisis sintáctico de

un factor.

Por último, la clase Producto implementa el programa principal.


Fuente: La web del programador, patrones de diseño en Java.

3) Realice un mapa conceptual para explicar los patrones de diseño de comportamiento


chain of reponsability

El comportamiento de este patrón se distingue por su versatilidad a la hora de resolver


problemas, permitiendo resolver estos donde no estamos muy seguros de qué objeto deberá
procesar una solicitud concreta, este patrón de diseño resuelve problemas fácilmente donde la
herencia no puede. Apoyándose de una estructura en forma de cadena donde una secuencia de
objetos tratan de atender una petición
Estos patrones son implementados en distintos sistemas de validación de órdenes. Por ejemplo,
cuando trabajamos con sistemas ERP o CRM, es muy común gestionar casi cualquier cosa
mediante órdenes, ya sea órdenes de venta, compra, servicio, instalación, etc. Es por esto que
vamos a utilizar este patrón para crear un mecanismo óptimo para validar cualquier tipo de
orden, reutilizando los validadores entre los distintos tipos de órdenes.
La implementación se basa en la transformación de comportamientos particulares en objetos
independientes llamados Handlers, Básicamente cada verificación del proceso debe extraerse a
su propia clase con un único método que realice la acción corresponde. La solicitud, junto con
sus datos y contexto, se pasa a este método como argumento para inicializar la cadena.
Bibliografía

Materia entregada durante la semana, mas búsquedas en la web

PARA REFERENCIAR ESTE DOCUMENTO, CONSIDERE:


IACC (2020). Patrones de diseño de comportamiento II. Programación Orientada a
Objetos II. Semana 7.

https://adrianalonso.es/arquitectura-del-software/patrones-de-diseno-chain-of-responsability/

www.lawebdelprogramador\patrones-diseno

También podría gustarte