Cátedra: Fontela
Fecha: Primer Oportunidad - Invierno 2013
Día: 19/07/2013
Ejercicio conceptual. Una universidad pública argentina define el siguiente circuito para la aprobación de los planes de estudio.
Se pide
¿En qué consiste la práctica de intregración continua? ¿Qué ventajas ofrece? (una carilla).
La cohesión es un atributo de calidad del diseño de módulos (paquetes, clases y métodos), a los cuales se les suele exigir una cohesión alta. Asimismo, definimos que un módulo tiene alta cohesión cuando sus responsabilidades están bien establecidas y focalizadas. A juicio de quien redactó este parcial, las interfaces de iteradores de Java y C# tienen algún problema de cohesión. ¿Puede usted identificar alguno? ¿Qué cambio les propondría a los responsables de la plataforma Java/.NET para mejorar la cohesión en el caso detectado? ¿Cómo cambiaría el uso de iteradores? ¿En que sentido resulta mejor o más cómodo el enfoque provisto actualmente? (máximo 1 carilla, usando Java o c#, no necesariamente ambos casos).
En Java se utiliza la interfaz Iterator<T>, en la cual hay 2 métodos:
next() : T avanza al siguiente elemento de la colección y devuelve una referencia al mismo hasNext() : boolean indica si hay más elementos en la colección
Ejemplo de uso
Iterator<String> i = listaNombres iterator(); while (i.hasNext() ){ String x = i.next(); //trabajo con x }
En C# se utiliza la interfaz IEnumerator<T>, en la cual hay un método y una propiedad:
MoveNext() : bool avanza al siguiente elemento, devolviendo true si tuvo éxito o false si no hay más elementos Current : T propiedad que devuelve una referencia al elemento actual en la colección
Ejemplo de uso
IEnumerator<String> i = listaNombres.GetEnumerator(); while ( i.MoveNext() ){ String x = i.Current; //trabajo con x }