Talle de Programación Orientada a Objetos - Semana 9 - Reporte 8
BUILDER PATTERN (Constructor)
Las partes de mi código que encajan con las especificaciones del patrón Builder son:
- Constructor: Mi clase Billing proporciona la interfaz y funciones para generar la factura.
- Constructor Concreto: En éste caso se trata del constructor de la Factura, el cual ensambla las partes individuales.
- Director: .
- Parte: Las partes son el Proveedor, Origen, Destino y Orden.
- Producto: El producto es la Factura.
En mi caso el primer paso es generar la factura al pedir los datos. Mi constructor sera Billing y su método makeNewBill() para construir la factura
Posterior se envían los objetos individuales al constructor de la clase Bill() :
Y el producto final es una Factura la cual se imprime en pantalla:
A partir de este producto es posible generar varios productos distintos, pues es posible imprimir la Factura, exportarla a otro formato como PDF, o generar la factura electrónica.
COMPOSITE PATTERN (Compuesto)
El Patrón compuesto lo aplique al momento de pedir los datos de cada objeto individual, cada campo que es necesario para generar ya sea el Origen, Destino ú Orden; son hojas del objeto indiviual; y cada objeto individual (pero compuesto) se vuelve hoja de lo que es la Factura principal.
En éste caso el patrón compuesto se combina con el patrón constructor para generarla factura.
ITERATOR (Iterador)
Por último, en el proyecto solo he aplicado un iterador, en esté caso la función del iterador es la de ingresar a la orden del cliente para imprimir en pantalla los conceptos a facturar.
Falta implementar algunos iteradores más, porque necesito tener la capacidad de modificar los datos de la orden o agregar nuevos datos.
La implementación de los patrones fue algo complicada, de hecho siento que "emule" a los patrones y no los aplique concretamente ya que en cierto momento mi código no compiló y trate de tener algo sólido para presentar.
SALUDOS
Pues, ahí va. A veces el implementar un patrón es como comprar zapatos nuevos. Sí semi-queda, pero luego aprieta al final del día ;) Te pongo 4.
ResponderEliminarDe hecho el código si compiló y funciono del todo, solo que quite algunas cosas para proteger la integridad del mismo :)
ResponderEliminar