Latest web development tutorials

el modo iterativo

el modo iterativo (iterador) Java y .Net entorno de programación es un patrón de diseño muy común. Este modo se utiliza para los elementos de acceso secuencial de una colección de objetos, una colección de objetos no es necesario conocer la representación subyacente.

iterador pertenece patrones de comportamiento.

introducción

Propósito: proporcionar una manera de acceder a un objeto en cada elemento de la polimerización, pero no hay necesidad de exponer el interior del objeto.

Principalmente para resolver: una manera diferente de recorrer todo el objeto de integración.

Cuándo se debe utilizar: atravesar un objeto polimérico.

Cómo solucionarlo: la caminata entre los elementos de la responsabilidad de los iteradores en lugar de objetos de agregación.

El código de la llave: definir la interfaz: hasNext, al lado.

Ejemplos de aplicación: JAVA del iterador.

Ventajas: 1, lo que apoya de una manera diferente para atravesar un objeto agregado.2, lo que simplifica la clase de iterador de polimerización. 3, en la misma polimerización puede tener múltiples recorrido. 4, en un modo iterativo, añadir una nueva clase de clase de iterador polimérico y fácil, sin necesidad de modificar el código original.

Desventajas: Debido a la separación de funciones iterador de almacenamiento de datos de patrón y los datos de la poligonal, añadir nuevas clases agregados requieren un aumento correspondiente en la nueva clase de iterador, el número de pares de los aumentos de clase, lo que aumenta la complejidad del sistema hasta cierto punto.

Escenarios de uso: 1, el acceso a un objeto de contenido polimérico sin tener que exponer su representación interna.2, la necesidad de proporcionar una variedad de método de objeto de recorrido total. 3 para el desplazamiento diferente estructura agregada proporciona una interfaz unificada.

Notas: el modo iterativo se separa el comportamiento del recorrido de una colección de objetos, clase abstracta un iterador a ser responsables, por lo que tanto se puede hacer sin exposición a la estructura interna de la colección, pero también permiten código de acceso transparente externo para la recogida de datos interna.

realización

Vamos a crear una interfazIteratornarrativa y un método de navegación Devuelve un iterador de la interfazde contenedores.Contenedor de clase de entidad implementa la interfaz será responsable de la implementación delainterfazIterator.

IteratorPatternDemo,nuestras clases de demostración utilizar la clase entidad para imprimirNamesRepositoryNamesRepository almacenada como conjuntoNames.

iterador diagrama UML

Paso 1

Crear una interfaz.

Iterator.java

Iterator interfaz pública {
   hasNext public boolean ();
   Objeto pública siguiente ();
}

Container.java

Recipiente interfaz pública {
   pública iterador getIterator ();
}

Paso 2

Crear clase de entidadde contenedoresimplementa la interfaz. Esta clase se ha dado cuenta de la clase de interfaz internaNameIteratoriterador.

NameRepository.java

NameRepository clase pública implementa Container {
   nombres public String [] = { "Robert", "John", "Julie", "Lora"};

   @ Override
   pública iterador getIterator () {
      volver nueva NameIterator ();
   }

   NameIterator clase privada implementa Iterator {

      int index;

      @ Override
      hasNext public boolean () {
         si (índice <names.length) {
            return true;
         }
         return false;
      }

      @ Override
      Objeto pública siguiente () {
         si (this.hasNext ()) {
            nombres volver [índice ++];
         }
         return null;
      }		
   }
}

paso 3

UtiliceNameRepositorypara obtener iteradores, e imprimir los nombres.

IteratorPatternDemo.java

public class {IteratorPatternDemo
	
   principales argumentos (String []) {public static void
      NameRepository namesRepository = new NameRepository ();

      for (Iterator iter = namesRepository.getIterator (); iter.hasNext ();) {
         string name = (String) iter.next ();
         System.out.println ( "Nombre:" + nombre);
      } 	
   }
}

Paso 4

Verifique la salida.

Nombre: Robert
Nombre: John
Nombre: Julie
Nombre: Lora