<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://www.ecured.cu/index.php?action=history&amp;feed=atom&amp;title=Iterator</id>
	<title>Iterator - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://www.ecured.cu/index.php?action=history&amp;feed=atom&amp;title=Iterator"/>
	<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Iterator&amp;action=history"/>
	<updated>2026-05-14T05:42:09Z</updated>
	<subtitle>Historial de revisiones para esta página en el wiki</subtitle>
	<generator>MediaWiki 1.31.16</generator>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Iterator&amp;diff=3443521&amp;oldid=prev</id>
		<title>Javiermartin jc: Texto reemplazado: «&lt;div align=&quot;justify&quot;&gt;» por «»</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Iterator&amp;diff=3443521&amp;oldid=prev"/>
		<updated>2019-07-06T18:38:09Z</updated>

		<summary type="html">&lt;p&gt;Texto reemplazado: «&amp;lt;div align=&amp;quot;justify&amp;quot;&amp;gt;» por «»&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;es&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revisión del 18:38 6 jul 2019&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l5&quot; &gt;Línea 5:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 5:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|tamaño= &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|tamaño= &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|concepto= Proporciona una forma de acceder secuencialmente a los elementos de un objeto compuesto por agregación.}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|concepto= Proporciona una forma de acceder secuencialmente a los elementos de un objeto compuesto por agregación.}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;div align=&amp;quot;justify&amp;quot;&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;''' Iterator. ''' El patrón de diseño&amp;#160; Iterator proporciona una forma de acceder secuencialmente a los elementos de un [[objeto]] compuesto por agregación sin necesidad de desvelar su representación interna.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;''' Iterator. ''' El patrón de diseño&amp;#160; Iterator proporciona una forma de acceder secuencialmente a los elementos de un [[objeto]] compuesto por agregación sin necesidad de desvelar su representación interna.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki1:diff::1.12:old-1535427:rev-3443521 --&gt;
&lt;/table&gt;</summary>
		<author><name>Javiermartin jc</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Iterator&amp;diff=1535427&amp;oldid=prev</id>
		<title>Mena: /* Otros aspectos de interés */</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Iterator&amp;diff=1535427&amp;oldid=prev"/>
		<updated>2012-05-30T02:46:52Z</updated>

		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Otros aspectos de interés&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;es&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revisión del 02:46 30 may 2012&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l28&quot; &gt;Línea 28:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 28:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Cuando el Cliente controla la iteración se dice que el Iterador es externo y cuando la controla el propio Iterador se dice que es interno.&amp;#160; Los Iteradores externos son más flexibles y potentes, mientras que los internos son más sencillos de usar.&amp;#160; Los Iteradores externos son problemáticos con estructuras recursivas como las de Composición (se suelen usar entonces Iteradores Nulos).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Cuando el Cliente controla la iteración se dice que el Iterador es externo y cuando la controla el propio Iterador se dice que es interno.&amp;#160; Los Iteradores externos son más flexibles y potentes, mientras que los internos son más sencillos de usar.&amp;#160; Los Iteradores externos son problemáticos con estructuras recursivas como las de Composición (se suelen usar entonces Iteradores Nulos).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Si el [[algoritmo]] para recorrer la estructura lo proporciona el agregado, el Iterador sólo guarda el estado y se le llama CURSOR.&amp;#160; Si el [[algoritmo]] reside en el propio Iterador es más fácil usar el mismo sobre estructuras diferentes o diferentes [[&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;algoritmos&lt;/del&gt;]] sobre la misma estructura, puede violarse el [[encapsulamiento]], por necesidad de acceder a [[variables privadas]] de la estructura.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Si el [[algoritmo]] para recorrer la estructura lo proporciona el agregado, el Iterador sólo guarda el estado y se le llama CURSOR.&amp;#160; Si el [[algoritmo]] reside en el propio Iterador es más fácil usar el mismo sobre estructuras diferentes o diferentes [[&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;algoritmo&lt;/ins&gt;]]&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;s &lt;/ins&gt;sobre la misma estructura, puede violarse el [[encapsulamiento]], por necesidad de acceder a [[variables privadas]] de la estructura.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Dada la estrecha relación entre el Agregado y el Iterador éste puede ser una [[clase]] amiga de aquel, sin necesidad de sobrecargar la interfaz de dicho Agregado.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Dada la estrecha relación entre el Agregado y el Iterador éste puede ser una [[clase]] amiga de aquel, sin necesidad de sobrecargar la interfaz de dicho Agregado.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Un Iterador robusto no debe verse afectado por altas y bajas en los elementos de estructura que recorre ni necesitar hacer una copia de la misma cada vez que ésta se modifica (que los cambios se reflejen en el estado del Iterador).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Un Iterador robusto no debe verse afectado por altas y bajas en los elementos de estructura que recorre ni necesitar hacer una copia de la misma cada vez que ésta se modifica (que los cambios se reflejen en el estado del Iterador).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Cada AgregadoConcreto es el encargado de crear el Iterador Concreto que se adapta a su estructura concreta.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Cada AgregadoConcreto es el encargado de crear el Iterador Concreto que se adapta a su estructura concreta.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Fuentes==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Fuentes==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki1:diff::1.12:old-1385167:rev-1535427 --&gt;
&lt;/table&gt;</summary>
		<author><name>Mena</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Iterator&amp;diff=1385167&amp;oldid=prev</id>
		<title>Yaucp03038jcscu: Página creada con '  {{Definición |nombre=Iterator |imagen= UMLClassDiagram02.gif |tamaño=  |concepto= Proporciona una forma de acceder secuencialmente a los elementos de un objeto compuesto por...'</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Iterator&amp;diff=1385167&amp;oldid=prev"/>
		<updated>2012-02-19T17:34:03Z</updated>

		<summary type="html">&lt;p&gt;Página creada con &amp;#039;  {{Definición |nombre=Iterator |imagen= UMLClassDiagram02.gif |tamaño=  |concepto= Proporciona una forma de acceder secuencialmente a los elementos de un objeto compuesto por...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt; &lt;br /&gt;
{{Definición&lt;br /&gt;
|nombre=Iterator&lt;br /&gt;
|imagen= UMLClassDiagram02.gif&lt;br /&gt;
|tamaño= &lt;br /&gt;
|concepto= Proporciona una forma de acceder secuencialmente a los elementos de un objeto compuesto por agregación.}}&lt;br /&gt;
&amp;lt;div align=&amp;quot;justify&amp;quot;&amp;gt;&lt;br /&gt;
''' Iterator. ''' El patrón de diseño  Iterator proporciona una forma de acceder secuencialmente a los elementos de un [[objeto]] compuesto por agregación sin necesidad de desvelar su representación interna.&lt;br /&gt;
 &lt;br /&gt;
==Como usarlo==&lt;br /&gt;
 &lt;br /&gt;
*Cuando se quiere acceder a los elementos de un [[objeto]] agregado sin mostrar su representación interna.&lt;br /&gt;
*Cuando se quieren permitir recorridos múltiples en objetos agregados.&lt;br /&gt;
*Cuando se quiere proporcionar una interfaz uniforme para recorrer diferentes estructuras de agregación (iteración polimórfica).&lt;br /&gt;
 &lt;br /&gt;
==Ventajas==&lt;br /&gt;
 &lt;br /&gt;
*Se incrementa la flexibilidad, dado que para permitir nuevas formas de recorrer una estructura basta con modificar el iterador en uso, cambiarlo por otro (parametrización) o definir uno nuevo.&lt;br /&gt;
*Se enfatiza la distribución de responsabilidades (y, por ello, la simplicidad de los elementos del sistema), dado que la interfaz del agregado se ve libre de una serie de operaciones, más propias de la interfaz del iterador.&lt;br /&gt;
*Se facilitan el paralelismo y la concurrencia, puesto que, como cada iterador tiene consciencia de su estado en cada momento, es posible que dos o más iteradores recorran una misma estructura simultánea o solapadamente.&lt;br /&gt;
 &lt;br /&gt;
==Relacionado con==&lt;br /&gt;
 &lt;br /&gt;
*Iterador se aplica a menudo a estructuras recursivas del tipo de Composición.&lt;br /&gt;
*Los Iteradores polimórficos se basan en [[Método de Fábrica]] a la hora de instanciar el tipo de iterador apropiado a cada caso.&lt;br /&gt;
*También es habitual que Iterador use un [[Recuerdo]] para capturar el estado de una iteración, de forma interna.&lt;br /&gt;
==Otros aspectos de interés==&lt;br /&gt;
 &lt;br /&gt;
*Cuando el Cliente controla la iteración se dice que el Iterador es externo y cuando la controla el propio Iterador se dice que es interno.  Los Iteradores externos son más flexibles y potentes, mientras que los internos son más sencillos de usar.  Los Iteradores externos son problemáticos con estructuras recursivas como las de Composición (se suelen usar entonces Iteradores Nulos).&lt;br /&gt;
*Si el [[algoritmo]] para recorrer la estructura lo proporciona el agregado, el Iterador sólo guarda el estado y se le llama CURSOR.  Si el [[algoritmo]] reside en el propio Iterador es más fácil usar el mismo sobre estructuras diferentes o diferentes [[algoritmos]] sobre la misma estructura, puede violarse el [[encapsulamiento]], por necesidad de acceder a [[variables privadas]] de la estructura.&lt;br /&gt;
*Dada la estrecha relación entre el Agregado y el Iterador éste puede ser una [[clase]] amiga de aquel, sin necesidad de sobrecargar la interfaz de dicho Agregado.&lt;br /&gt;
*Un Iterador robusto no debe verse afectado por altas y bajas en los elementos de estructura que recorre ni necesitar hacer una copia de la misma cada vez que ésta se modifica (que los cambios se reflejen en el estado del Iterador).&lt;br /&gt;
*Cada AgregadoConcreto es el encargado de crear el Iterador Concreto que se adapta a su estructura concreta.&lt;br /&gt;
 &lt;br /&gt;
==Fuentes==&lt;br /&gt;
 &lt;br /&gt;
*[http://es.wikipedia.org/wiki/Iterador_(patrón_de_diseño) wikipedia.org]&lt;br /&gt;
*[http://patronesdediseno.blogspot.com/2009/05/patron-iterator.html patronesdedieseno.blogspot.com]&lt;br /&gt;
*[http://www.proactiva-calidad.com/java/patrones/iterador.html proactiva-calidad.com]&lt;br /&gt;
*[http://es.wikipedia.org/wiki/Iterator_pattern wikipedia.org]&lt;br /&gt;
*[http://www.sgi.com/tech/stl/Iterators.html sgi.com]&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
[[Category: Informática]][[Category:Programación]]&lt;/div&gt;</summary>
		<author><name>Yaucp03038jcscu</name></author>
		
	</entry>
</feed>