<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Patterns I Hate #2: Template Method</title>
	<atom:link href="http://tech.puredanger.com/index.php/2007/07/03/pattern-hate-template/feed/" rel="self" type="application/rss+xml" />
	<link>http://tech.puredanger.com/2007/07/03/pattern-hate-template/</link>
	<description>Alex Miller&#039;s technical blog</description>
	<lastBuildDate>Mon, 06 Feb 2012 19:39:50 -0800</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
	<item>
		<title>By: Design Patterns Uncovered: The Template Method Pattern &#124; jamessugrue.ie</title>
		<link>http://tech.puredanger.com/2007/07/03/pattern-hate-template/comment-page-1/#comment-295777</link>
		<dc:creator>Design Patterns Uncovered: The Template Method Pattern &#124; jamessugrue.ie</dc:creator>
		<pubDate>Mon, 26 Sep 2011 04:57:23 +0000</pubDate>
		<guid isPermaLink="false">http://tech.puredanger.com/2007/07/03/pattern-hate-template/#comment-295777</guid>
		<description>[...] to follow - without the help of stepping through the code with a debugger. Alex Miller provides a detailed rundown of the reasons he hates the template method pattern in his [...]</description>
		<content:encoded><![CDATA[<p>[...] to follow &#8211; without the help of stepping through the code with a debugger. Alex Miller provides a detailed rundown of the reasons he hates the template method pattern in his [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Doug</title>
		<link>http://tech.puredanger.com/2007/07/03/pattern-hate-template/comment-page-1/#comment-295750</link>
		<dc:creator>Doug</dc:creator>
		<pubDate>Wed, 14 Sep 2011 00:29:41 +0000</pubDate>
		<guid isPermaLink="false">http://tech.puredanger.com/2007/07/03/pattern-hate-template/#comment-295750</guid>
		<description>The templated Policy Pattern is better than interfaces in my experience - less code, strongest types. The main thing that I have learned is that there is no such thing as a thing being universally better or best.

What&#039;s better, a Lamborghini or a Mack dump truck? Depends on if you need to transport 50000 pounds of dirt!

What systems seriously expose all this grand composition from interfaces and abstraction technobabble. How many abstract base classes written by someone else have you really inherited and implemented? I don&#039;t know about you, but can&#039;t remember having implemented a base written by someone else - it has always been my own base class and my own implementations, when it fits the problem perfectly. All this interface composition stuff is mostly a bad case of YAGNI; Ya aint gonna need it.
Solve the problems you actually have using the methods that you feel are the most appropriate, set aside the pedantic attitudes that doing it such and such way is &quot;cooler&quot; or &quot;better&quot;.</description>
		<content:encoded><![CDATA[<p>The templated Policy Pattern is better than interfaces in my experience &#8211; less code, strongest types. The main thing that I have learned is that there is no such thing as a thing being universally better or best.</p>
<p>What&#8217;s better, a Lamborghini or a Mack dump truck? Depends on if you need to transport 50000 pounds of dirt!</p>
<p>What systems seriously expose all this grand composition from interfaces and abstraction technobabble. How many abstract base classes written by someone else have you really inherited and implemented? I don&#8217;t know about you, but can&#8217;t remember having implemented a base written by someone else &#8211; it has always been my own base class and my own implementations, when it fits the problem perfectly. All this interface composition stuff is mostly a bad case of YAGNI; Ya aint gonna need it.<br />
Solve the problems you actually have using the methods that you feel are the most appropriate, set aside the pedantic attitudes that doing it such and such way is &#8220;cooler&#8221; or &#8220;better&#8221;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Luke</title>
		<link>http://tech.puredanger.com/2007/07/03/pattern-hate-template/comment-page-1/#comment-266135</link>
		<dc:creator>Luke</dc:creator>
		<pubDate>Wed, 08 Dec 2010 18:25:10 +0000</pubDate>
		<guid isPermaLink="false">http://tech.puredanger.com/2007/07/03/pattern-hate-template/#comment-266135</guid>
		<description>Thanks, very clear article and examples.</description>
		<content:encoded><![CDATA[<p>Thanks, very clear article and examples.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: PROG [Java] Protected/private/public - Pagina 2 - 9lives - Games Forum</title>
		<link>http://tech.puredanger.com/2007/07/03/pattern-hate-template/comment-page-1/#comment-232619</link>
		<dc:creator>PROG [Java] Protected/private/public - Pagina 2 - 9lives - Games Forum</dc:creator>
		<pubDate>Wed, 14 Jul 2010 21:56:53 +0000</pubDate>
		<guid isPermaLink="false">http://tech.puredanger.com/2007/07/03/pattern-hate-template/#comment-232619</guid>
		<description>[...] Dat zijn toch 2 geheel verschillende concepten, maar ik vind je uitspraak wel interessant, argumenteer eens?    Mja, (eerst effe disclaimer doe dus C#) Meeste projecten die ik doe veranderen de requirements tijdens development Dus met de eerste versie van de requirements is het dan altijd, &quot;ola ik kan hier inheritance gebruiken en ga der een schoon OO design van maken&quot;  dan gebeurt het -&gt; change requests &quot;Allez effe wat virtual methods in de base class maken die ik in de sub classes kan overriden.&quot; (Dan krijgt ge dus al een half-bakken template pattern) &quot;ah, maar men subclass word ergens gebruikt in een class/form A en daar zou ik andere functionaliteit moeten hebben in men baseclass dan wanneer ik hem in class/form B gebruik.&quot; Laten we dat dan maar effe oplossen met een functional pointer naar de baseclass  ...  Uiteindelijk is het gewoon niet meer maintainable, laat staan voor iemand die der de eerste keer doorloopt met debuggen  Vooral dus bij de grote classes die zeker zullen wijzigen in de loop van het project doe ik dat liever niet, uiteindelijk hebt ge altijd een template pattern, en dat vind ik voor grote classes met veel functionaliteit niet duidelijk verstaanbaar genoeg voor een nieuwe developer die die code zou moeten bekijken  anyway effe gegoogled naar een artikel dat een beetje duidelijker beschrijft wat ik bedoel  -&gt; Patterns I Hate #2: Template Method : Pure Danger Tech [...]</description>
		<content:encoded><![CDATA[<p>[...] Dat zijn toch 2 geheel verschillende concepten, maar ik vind je uitspraak wel interessant, argumenteer eens?    Mja, (eerst effe disclaimer doe dus C#) Meeste projecten die ik doe veranderen de requirements tijdens development Dus met de eerste versie van de requirements is het dan altijd, &quot;ola ik kan hier inheritance gebruiken en ga der een schoon OO design van maken&quot;  dan gebeurt het -&gt; change requests &quot;Allez effe wat virtual methods in de base class maken die ik in de sub classes kan overriden.&quot; (Dan krijgt ge dus al een half-bakken template pattern) &quot;ah, maar men subclass word ergens gebruikt in een class/form A en daar zou ik andere functionaliteit moeten hebben in men baseclass dan wanneer ik hem in class/form B gebruik.&quot; Laten we dat dan maar effe oplossen met een functional pointer naar de baseclass  &#8230;  Uiteindelijk is het gewoon niet meer maintainable, laat staan voor iemand die der de eerste keer doorloopt met debuggen  Vooral dus bij de grote classes die zeker zullen wijzigen in de loop van het project doe ik dat liever niet, uiteindelijk hebt ge altijd een template pattern, en dat vind ik voor grote classes met veel functionaliteit niet duidelijk verstaanbaar genoeg voor een nieuwe developer die die code zou moeten bekijken  anyway effe gegoogled naar een artikel dat een beetje duidelijker beschrijft wat ik bedoel  -&gt; Patterns I Hate #2: Template Method : Pure Danger Tech [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jneira</title>
		<link>http://tech.puredanger.com/2007/07/03/pattern-hate-template/comment-page-1/#comment-207133</link>
		<dc:creator>jneira</dc:creator>
		<pubDate>Mon, 24 May 2010 17:59:31 +0000</pubDate>
		<guid isPermaLink="false">http://tech.puredanger.com/2007/07/03/pattern-hate-template/#comment-207133</guid>
		<description>Thanks for criticism, i was using the pattern usually as a semiabstract and fast way to reuse algorithms and behaviour. I think the use is controlled: only two or three layers trough one &quot;axis&quot; of abstraction and in internal implementation.
But i take account of drawbacks, some of them i have started to see in my code. Override is a source of errors</description>
		<content:encoded><![CDATA[<p>Thanks for criticism, i was using the pattern usually as a semiabstract and fast way to reuse algorithms and behaviour. I think the use is controlled: only two or three layers trough one &#8220;axis&#8221; of abstraction and in internal implementation.<br />
But i take account of drawbacks, some of them i have started to see in my code. Override is a source of errors</p>
]]></content:encoded>
	</item>
</channel>
</rss>

