0% encontró este documento útil (0 votos)
655 vistas7 páginas

Patrones de Diseño en POO: Iterator y Más

Este documento presenta tres preguntas sobre programación orientada a objetos. La primera pregunta trata sobre cómo aplicar el patrón de diseño Iterator para resolver problemas en un sistema de facturación. La segunda pregunta incluye una tabla comparativa de los patrones Command, Observer y Template Method. La tercera pregunta pide describir cómo se utilizan los patrones de comportamiento en el desarrollo de software orientado a objetos.
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
0% encontró este documento útil (0 votos)
655 vistas7 páginas

Patrones de Diseño en POO: Iterator y Más

Este documento presenta tres preguntas sobre programación orientada a objetos. La primera pregunta trata sobre cómo aplicar el patrón de diseño Iterator para resolver problemas en un sistema de facturación. La segunda pregunta incluye una tabla comparativa de los patrones Command, Observer y Template Method. La tercera pregunta pide describir cómo se utilizan los patrones de comportamiento en el desarrollo de software orientado a objetos.
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

Control Semana 6

PROGRAMACIÓN ORIENTADA A OBJETOS II

20/07/2021
Desarrollo

DESARROLLO DEL CONTROL:

Lea atentamente las siguientes preguntas:

1. Frente a un problema presentado con la funcionabilidad de las operaciones en el sistema de


facturación de una empresa textilera, (donde se cuenta con todo el proceso de entrada, salida e
inventario de productos en conjunto con sus respectivos compradores y proveedores), ¿cómo
aplicaría patrones de comportamiento iterator para darle solución? (3 puntos).

R: El propósito del patrón de diseño Iterator es proporcionar una forma de acceder a los
elementos de una colección secuencial de objetos sin exponer la representación interna de
la ruta. La colección de objetos (como listas) debe proporcionar la forma o ruta de sus
elementos sin exponer su representación interna. Por otro lado, es posible que también
necesite examinar la lista de diferentes maneras, pero es posible que no desee completar
la "interfaz de lista" con operaciones para examinar sus elementos en diferentes
direcciones. También puede completar varios viajes sin terminar en la misma lista como
clientes, proveedores y productos La idea principal de este modelo es ser responsable de
acceder y recorrer los objetos de la lista, y agregar objetos del tipo Iterator a este último.
La clase de iterador define una interfaz que permite el acceso a los elementos de la lista.
El Objeto de tipo Iterador se encarga de guardar la ruta del elemento actual, es decir,
conoce los elementos que se han movido. Por ejemplo, una clase ListaCliente necesita
una clase ListaClienteIterator y tienen la siguiente relación. Antes de crear una instancia
de la clase ListaClienteIterator, se debe proporcionar una lista de elementos a recorrer.
Después de crear una instancia de la clase ListIterator, podrá acceder a los elementos de
la lista.

Ejemplo:
Sucursal que contiene empleados. Para ello internamente implemente un arreglo(Array) .
Public class Sucursal

Private Empleado[] empleados = new Empleados [200]


Private int numero = 0;
Private String nombreSucursal;

Public Sucursal (String n) {


nombreDivision = n; }

public void add (string nombre) {


Empleado e=new Empleado (nombre, nombreSucursal);
Empleados[números++] =e; }

Public SucursalIterator iterator () {


return new SucursalIterator (empleados); } }

Public class Empleado {


Private String nombre;
Private String sucursal;

Public Empleado(String n, String d) {


nombre = n;
sucursal = d; }

public void print () {


[Link] (“Nombre: “+ nombre + “Sucursal : “ + sucursal);

}
Public class SucursalIterator implements Iterator {
Private empleado[] empleado;
Private int ubicación =0;

Public SucursalIterator (Empleado[] e);


empleado = e; }

public empleado next() {


return empleado[ubicación++]; }

public boolean hasNext () {


if (ubicación < [Link] && empleado[ubicación] != null) {
return true; }
else { return false; }

2. Realice un cuadro comparativo para entender la aplicación de los patrones de


comportamiento: Command, Observer y Templete Method (3 puntos).

PATRON DEFINICIÓN CUANDO SE UTILIZA VENTAJAS


COMMAND Permite solicitar una operación El sistema se desarrolla Separe el objeto que llama a la
sobre un objeto sin conocer utilizando órdenes operación del objeto que sabe
realmente el contenido de la avanzadas construidas cómo realizar la operación. El
operación o su destinatario real. mediante operaciones objeto de commands se puede
Por este motivo, la solicitud se simples. Facilita la manipular y ampliar como
encapsula como un objeto, lo parametrización de las cualquier otro objeto. El objeto
que también facilita la acciones a ejecutar. de commands se puede
parametrización del método. Separa el tiempo de manipular y ampliar como
solicitud del tiempo de cualquier otro objeto.
ejecución.
OBSERVER Define dependencias de uno a Las clases relacionadas Permitir cambios
varios entre objetos, por lo que deben ser consistentes, independientes de sujeto y
cuando un objeto cambia de pero independientes. El observador Agrega
estado, notifica a todas las cambio de estado de uno o observadores sin modificar el
dependencias de este cambio. más objetos debe provocar sujeto u observadores.
el comportamiento de otros
objetos.
TEMPLETE Define los pasos del algoritmo El comportamiento público Facilita la reutilización del
METHOD en el funcionamiento de la entre subclases debe estar código. Muy útil para construir
superclase, de modo que todos en una clase común. bibliotecas
o parte de estos pasos se La clase padre debe poder porque ayuda a descomponer
redefinen en las subclases del llamar uniformemente el comportamientos comunes de
sucesor de la superclase. comportamiento de sus clases.
subclases.

3. Imagine que usted se desempeña como programador experto en el área de sistemas de una
empresa, ¿cómo utiliza los patrones de diseño de comportamiento en el desarrollo de software
orientado a objetos? (3 puntos).

R: Los patrones ayudan a estandarizar su código, lo que facilita que otros programadores
comprendan el diseño. Son muy buenas herramientas y, como programadores, siempre
debemos usar las mejores herramientas. El método de plantilla es un patrón ampliamente
utilizado y fácil de implementar. Consiste en una definición de abstracción de algoritmo paso a
paso, en el que se llaman operaciones abstractas u operaciones primitivas en cada paso. El
modo mediador (mediador) le permite usar el objeto mediador entre un par para optimizar la
referencia del par de objetos, y debido a que estos objetos no requieren este objeto mediador,
se elimina el acoplamiento.

Para dar un breve sustento del porqué de la utilización de los patrones de diseño en general, se
debe considerar que los patrones de diseños permiten un acoplamiento entre los sistemas
orientados a objetos, debido a que los flexibiliza sin dejar a un lado las bases sólidas en las que
se desarrolla la POO como: la abstracción, el encapsulamiento, el polimorfismo y la herencia.

La POO se desarrolla enfocada a sus bases, que todos los patrones diseñados respetan cada
una de sus premisas, y se implementan bajo sus normas para que sigan cumpliendo sus bases
sin ocasionar variaciones, sino todo lo contrario, ayudan a mejorar la implementación y la
relación existente entre clases y objetos.

Bibliografía
[Haga triple clic en cualquier parte de este párrafo para escribir la primera referencia

bibliográfica.]

Instrucciones para la sección de las citas bibliográficas:


Escriba la bibliografía aquí en orden alfabético (empezando por el apellido del primer autor o, de
no haber autor, por la primera palabra del título). Esta página ya está formateada con sangrías
francesas. Incluya sólo las citas bibliográficas a las que haya hecho referencia en su trabajo y
asegúrese de incluir todas las citas bibliográficas a las que se haya referido en el mismo.

Ejemplos de un artículo:

Apellido, A. A., Apellido, B. B., y Apellido, C. C. (año). Título del artículo específico. Título
de la Revista, número de la revista, número de página.
[Link]

Lee, H. W. (2005). Los factores que influyen en los expatriados. Journal of American Academy of
Business, 6(2), 273-279.

Osorio-Delgado, M. A., Henao-Tamayo, L. J., Velásquez-Cock, J. A., Cañas-Gutiérrez, A. I.,


Restrepo-Múnera, L. M., Gañán-Rojo, P. F., Zuluaga-Gallego, R. O., Ortiz-Trujillo, I C. y
Castro-Herazo, C. I. (2017). Aplicaciones biomédicas de biomateriales poliméricos.
DYNA, 84(201), 241-252. [Link]

Nota: Si el artículo de la revista no tiene un DOI y proviene de una base de datos de investigación académica,
finalice la referencia después del rango de páginas. No incluya información de la base de datos en la
referencia. La referencia en este caso es la misma que para un artículo de revista impresa. Si el artículo de la
revista no tiene un DOI, pero tiene una URL que resolverá para los lectores (por ejemplo, es de una revista en
línea que no forma parte de una base de datos), incluya la URL del artículo al final de la referencia, en vez del
DOI.

Ejemplos de un texto:

Apellido, N. N. (año). Título del texto. Editorial. [Link]

McShane, S. L., y Von Glinow, M. (2004). Organizational behavior: Emerging realities for the
workplace. The McGraw-Hill Companies.

Panza, M. (2019). Números: elementos de matemáticas para filósofos.  Universidad Del Valle.


[Link]

También podría gustarte