<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Double Dispatching</title>
	<atom:link href="http://www.alejolp.com/blog/2006/11/17/double-dispatching/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.alejolp.com/blog/2006/11/17/double-dispatching/</link>
	<description>Here Comes Johnny Singing Oldies, Goldies</description>
	<pubDate>Wed, 07 Jan 2009 14:03:17 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.5</generator>
		<item>
		<title>By: Blog de Alejo &#187; Blog Archive &#187; Programacion Orientada a Objetos III: A ver, clase&#8230;</title>
		<link>http://www.alejolp.com/blog/2006/11/17/double-dispatching/#comment-6233</link>
		<dc:creator>Blog de Alejo &#187; Blog Archive &#187; Programacion Orientada a Objetos III: A ver, clase&#8230;</dc:creator>
		<pubDate>Fri, 06 Apr 2007 19:10:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.alejolp.com/blog/?p=84#comment-6233</guid>
		<description>[...] Ya les hablé de Poo, Más Poo, Double Dispatching. [...]</description>
		<content:encoded><![CDATA[<p>[...] Ya les hablé de Poo, Más Poo, Double Dispatching. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tano</title>
		<link>http://www.alejolp.com/blog/2006/11/17/double-dispatching/#comment-641</link>
		<dc:creator>Tano</dc:creator>
		<pubDate>Thu, 23 Nov 2006 02:43:33 +0000</pubDate>
		<guid isPermaLink="false">http://www.alejolp.com/blog/?p=84#comment-641</guid>
		<description>Siempre los ejemplos de double dispatching se basan en competencias, algun juego jeje. Pero se entiende.
Mira comento.
A medida que avanzan los años cada vez da mas miedo escribir un if.... (habria que sacarlos? jeje)

Saludoss!!</description>
		<content:encoded><![CDATA[<p>Siempre los ejemplos de double dispatching se basan en competencias, algun juego jeje. Pero se entiende.<br />
Mira comento.<br />
A medida que avanzan los años cada vez da mas miedo escribir un if&#8230;. (habria que sacarlos? jeje)</p>
<p>Saludoss!!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: RJG</title>
		<link>http://www.alejolp.com/blog/2006/11/17/double-dispatching/#comment-597</link>
		<dc:creator>RJG</dc:creator>
		<pubDate>Sat, 18 Nov 2006 03:36:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.alejolp.com/blog/?p=84#comment-597</guid>
		<description>Excelente artículo Alejandro, más claro no lo podrías haber explicado.
De todas formas... ¿Se utiliza DD en implementaciones reales? Yo pensaba que era sólo para aprobar Objetos I ;P</description>
		<content:encoded><![CDATA[<p>Excelente artículo Alejandro, más claro no lo podrías haber explicado.<br />
De todas formas&#8230; ¿Se utiliza DD en implementaciones reales? Yo pensaba que era sólo para aprobar Objetos I ;P</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gorlok</title>
		<link>http://www.alejolp.com/blog/2006/11/17/double-dispatching/#comment-596</link>
		<dc:creator>Gorlok</dc:creator>
		<pubDate>Sat, 18 Nov 2006 02:25:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.alejolp.com/blog/?p=84#comment-596</guid>
		<description>Muy buen artículo.

A este patrón se lo llama también Visitor. En http://es.wikipedia.org/wiki/Visitor_(patr%C3%B3n_de_dise%C3%B1o) hay más info, aunque en la versión es inglés de la misma página está mejor explicado: http://en.wikipedia.org/wiki/Visitor_pattern

En la wikipedia hay mucha información con ejemplos sobre los patrones más conocidos. Al pie de dichas páginas, hay un índice de patrones muy interesante.

Ahora, hablando de este patrón, si bien a veces es la mejor opción, le tengo bastante rechazo ^^ porque hay que escribir N^2 métodos si hay N clases, y es muy sucio tener que modificar todas las clases existentes cada vez que se agrega una nueva.

En performance es muy eficiente. Se usa mucho en parsers y cosas así. Pero lo que se gana en performance, se pierde en limpieza de diseño y mantenimiento, que como dije, al crecer el número de clases, se hace inviable.

Otra alternativa, más complicada, es combinar inversión de control por inyección de código, como se hace con un patrón Command, y un solo método de "ataque" (siguiendo con el ejemplo) al cual se puedan subscribir commands como en el patrón Observer (para subscribir nuevos comandos en la clase, que serán seleccionados usando una hash o tabla indexada por clases). Tendría que armar un ejemplo para explicarlo mejor, pero lo dejaré como tarea para el lector :P

Hay más sobre técnicas de este estilo en http://www.martinfowler.com/articles/injection.html

Saludos,
Gorlok</description>
		<content:encoded><![CDATA[<p>Muy buen artículo.</p>
<p>A este patrón se lo llama también Visitor. En <a href="http://es.wikipedia.org/wiki/Visitor_" rel="nofollow">http://es.wikipedia.org/wiki/Visitor_</a>(patr%C3%B3n_de_dise%C3%B1o) hay más info, aunque en la versión es inglés de la misma página está mejor explicado: <a href="http://en.wikipedia.org/wiki/Visitor_pattern" rel="nofollow">http://en.wikipedia.org/wiki/Visitor_pattern</a></p>
<p>En la wikipedia hay mucha información con ejemplos sobre los patrones más conocidos. Al pie de dichas páginas, hay un índice de patrones muy interesante.</p>
<p>Ahora, hablando de este patrón, si bien a veces es la mejor opción, le tengo bastante rechazo ^^ porque hay que escribir N^2 métodos si hay N clases, y es muy sucio tener que modificar todas las clases existentes cada vez que se agrega una nueva.</p>
<p>En performance es muy eficiente. Se usa mucho en parsers y cosas así. Pero lo que se gana en performance, se pierde en limpieza de diseño y mantenimiento, que como dije, al crecer el número de clases, se hace inviable.</p>
<p>Otra alternativa, más complicada, es combinar inversión de control por inyección de código, como se hace con un patrón Command, y un solo método de &#8220;ataque&#8221; (siguiendo con el ejemplo) al cual se puedan subscribir commands como en el patrón Observer (para subscribir nuevos comandos en la clase, que serán seleccionados usando una hash o tabla indexada por clases). Tendría que armar un ejemplo para explicarlo mejor, pero lo dejaré como tarea para el lector :P</p>
<p>Hay más sobre técnicas de este estilo en <a href="http://www.martinfowler.com/articles/injection.html" rel="nofollow">http://www.martinfowler.com/articles/injection.html</a></p>
<p>Saludos,<br />
Gorlok</p>
]]></content:encoded>
	</item>
</channel>
</rss>
