<?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: The Template Method is a lie</title>
	<atom:link href="http://lostechies.com/jimmybogard/2009/12/03/the-template-method-is-a-lie/feed/" rel="self" type="application/rss+xml" />
	<link>http://lostechies.com/jimmybogard/2009/12/03/the-template-method-is-a-lie/</link>
	<description>Strong opinions, weakly held</description>
	<lastBuildDate>Wed, 19 Jun 2013 05:19:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
	<item>
		<title>By: Cagdas</title>
		<link>http://lostechies.com/jimmybogard/2009/12/03/the-template-method-is-a-lie/#comment-2046</link>
		<dc:creator>Cagdas</dc:creator>
		<pubDate>Mon, 07 Dec 2009 06:14:26 +0000</pubDate>
		<guid isPermaLink="false">/blogs/jimmy_bogard/archive/2009/12/02/the-template-method-is-a-lie.aspx#comment-2046</guid>
		<description>@Grant +1</description>
		<content:encoded><![CDATA[<p>@Grant +1</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ice09</title>
		<link>http://lostechies.com/jimmybogard/2009/12/03/the-template-method-is-a-lie/#comment-2045</link>
		<dc:creator>Ice09</dc:creator>
		<pubDate>Sat, 05 Dec 2009 14:48:52 +0000</pubDate>
		<guid isPermaLink="false">/blogs/jimmy_bogard/archive/2009/12/02/the-template-method-is-a-lie.aspx#comment-2045</guid>
		<description>yes, Template Method is really tempting and often overused, especially in languages lacking an easy Strategy implementation (like closures).
I elaborated this (and hope for comment) for Java, Scala ... and Spring here: http://ice09.wordpress.com/2009/11/09/scala-mashup-series-the-template-method-in-java-spring-and-scala/</description>
		<content:encoded><![CDATA[<p>yes, Template Method is really tempting and often overused, especially in languages lacking an easy Strategy implementation (like closures).<br />
I elaborated this (and hope for comment) for Java, Scala &#8230; and Spring here: <a href="http://ice09.wordpress.com/2009/11/09/scala-mashup-series-the-template-method-in-java-spring-and-scala/" rel="nofollow">http://ice09.wordpress.com/2009/11/09/scala-mashup-series-the-template-method-in-java-spring-and-scala/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jeremy Gray</title>
		<link>http://lostechies.com/jimmybogard/2009/12/03/the-template-method-is-a-lie/#comment-2044</link>
		<dc:creator>Jeremy Gray</dc:creator>
		<pubDate>Thu, 03 Dec 2009 20:39:09 +0000</pubDate>
		<guid isPermaLink="false">/blogs/jimmy_bogard/archive/2009/12/02/the-template-method-is-a-lie.aspx#comment-2044</guid>
		<description>@Jimmy - I figured that was the case. In any case, I am in fact in complete agreement with you in that by whatever name this kind of behaviour finds itself implemented, I try as best as I can to avoid doing so via inheritance.</description>
		<content:encoded><![CDATA[<p>@Jimmy &#8211; I figured that was the case. In any case, I am in fact in complete agreement with you in that by whatever name this kind of behaviour finds itself implemented, I try as best as I can to avoid doing so via inheritance.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bogardj</title>
		<link>http://lostechies.com/jimmybogard/2009/12/03/the-template-method-is-a-lie/#comment-2043</link>
		<dc:creator>bogardj</dc:creator>
		<pubDate>Thu, 03 Dec 2009 14:26:36 +0000</pubDate>
		<guid isPermaLink="false">/blogs/jimmy_bogard/archive/2009/12/02/the-template-method-is-a-lie.aspx#comment-2043</guid>
		<description>@jeremy

Here I was using imperative and procedural interchangeably.  Not describing procedural languages, but procedural, imperative code.</description>
		<content:encoded><![CDATA[<p>@jeremy</p>
<p>Here I was using imperative and procedural interchangeably.  Not describing procedural languages, but procedural, imperative code.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jeremy Gray</title>
		<link>http://lostechies.com/jimmybogard/2009/12/03/the-template-method-is-a-lie/#comment-2042</link>
		<dc:creator>Jeremy Gray</dc:creator>
		<pubDate>Thu, 03 Dec 2009 13:45:00 +0000</pubDate>
		<guid isPermaLink="false">/blogs/jimmy_bogard/archive/2009/12/02/the-template-method-is-a-lie.aspx#comment-2042</guid>
		<description>@Jimmy - if by procedural you mean imperative, well of course the code is more imperative than declarative in your example. If, instead, by procedural you mean the classic, pre-OO, capital-P Procedural, then just how exactly did you go about overriding methods B and D?</description>
		<content:encoded><![CDATA[<p>@Jimmy &#8211; if by procedural you mean imperative, well of course the code is more imperative than declarative in your example. If, instead, by procedural you mean the classic, pre-OO, capital-P Procedural, then just how exactly did you go about overriding methods B and D?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jeremy Gray</title>
		<link>http://lostechies.com/jimmybogard/2009/12/03/the-template-method-is-a-lie/#comment-2041</link>
		<dc:creator>Jeremy Gray</dc:creator>
		<pubDate>Thu, 03 Dec 2009 13:39:51 +0000</pubDate>
		<guid isPermaLink="false">/blogs/jimmy_bogard/archive/2009/12/02/the-template-method-is-a-lie.aspx#comment-2041</guid>
		<description>@Chris - Strategy and Template Method aren&#039;t alone in that, either: Nested Closure can in many cases be used to precisely the same effect, bringing along its own special flavour of Double Dispatch. Template Method is dead! Long live Template Method! :)</description>
		<content:encoded><![CDATA[<p>@Chris &#8211; Strategy and Template Method aren&#8217;t alone in that, either: Nested Closure can in many cases be used to precisely the same effect, bringing along its own special flavour of Double Dispatch. Template Method is dead! Long live Template Method! <img src='http://lostechies.com/jimmybogard/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bogardj</title>
		<link>http://lostechies.com/jimmybogard/2009/12/03/the-template-method-is-a-lie/#comment-2040</link>
		<dc:creator>bogardj</dc:creator>
		<pubDate>Thu, 03 Dec 2009 13:37:00 +0000</pubDate>
		<guid isPermaLink="false">/blogs/jimmy_bogard/archive/2009/12/02/the-template-method-is-a-lie.aspx#comment-2040</guid>
		<description>@AC, Rob

If you have this method:

A()
b()
C()
d();

And template method overrides B and D, that&#039;s procedural code.  It&#039;s just a series of steps, some of which you can override.  I&#039;m not saying it&#039;s bad, there are plenty of right places for procedural code.  It&#039;s just my tendency to solve duplication first with TM pattern that&#039;s gotten me into trouble.</description>
		<content:encoded><![CDATA[<p>@AC, Rob</p>
<p>If you have this method:</p>
<p>A()<br />
b()<br />
C()<br />
d();</p>
<p>And template method overrides B and D, that&#8217;s procedural code.  It&#8217;s just a series of steps, some of which you can override.  I&#8217;m not saying it&#8217;s bad, there are plenty of right places for procedural code.  It&#8217;s just my tendency to solve duplication first with TM pattern that&#8217;s gotten me into trouble.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tuomas Hietanen</title>
		<link>http://lostechies.com/jimmybogard/2009/12/03/the-template-method-is-a-lie/#comment-2039</link>
		<dc:creator>Tuomas Hietanen</dc:creator>
		<pubDate>Thu, 03 Dec 2009 13:35:36 +0000</pubDate>
		<guid isPermaLink="false">/blogs/jimmy_bogard/archive/2009/12/02/the-template-method-is-a-lie.aspx#comment-2039</guid>
		<description>Hi Jimmy!

You can replace template-method with functional programming. :-)

I wrote a code project article about it a few years ago:
http://www.codeproject.com/KB/architecture/TMDPvsLambda.aspx

Of course, back in 2007 the functional programming in c# was a very new concept and a lot have changed since then. 

You should also check this link:

http://rogeralsing.com/2009/05/07/the-simplest-form-of-configurable-dependency-injection/

</description>
		<content:encoded><![CDATA[<p>Hi Jimmy!</p>
<p>You can replace template-method with functional programming. <img src='http://lostechies.com/jimmybogard/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>I wrote a code project article about it a few years ago:<br />
<a href="http://www.codeproject.com/KB/architecture/TMDPvsLambda.aspx" rel="nofollow">http://www.codeproject.com/KB/architecture/TMDPvsLambda.aspx</a></p>
<p>Of course, back in 2007 the functional programming in c# was a very new concept and a lot have changed since then. </p>
<p>You should also check this link:</p>
<p><a href="http://rogeralsing.com/2009/05/07/the-simplest-form-of-configurable-dependency-injection/" rel="nofollow">http://rogeralsing.com/2009/05/07/the-simplest-form-of-configurable-dependency-injection/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gilligan</title>
		<link>http://lostechies.com/jimmybogard/2009/12/03/the-template-method-is-a-lie/#comment-2038</link>
		<dc:creator>Gilligan</dc:creator>
		<pubDate>Thu, 03 Dec 2009 13:25:40 +0000</pubDate>
		<guid isPermaLink="false">/blogs/jimmy_bogard/archive/2009/12/02/the-template-method-is-a-lie.aspx#comment-2038</guid>
		<description>The place where I end up using Template method the most is in Test classes and Test Helpers. And you are right, these are mostly procedural in nature (setup run behavior then verify).</description>
		<content:encoded><![CDATA[<p>The place where I end up using Template method the most is in Test classes and Test Helpers. And you are right, these are mostly procedural in nature (setup run behavior then verify).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rob M</title>
		<link>http://lostechies.com/jimmybogard/2009/12/03/the-template-method-is-a-lie/#comment-2037</link>
		<dc:creator>Rob M</dc:creator>
		<pubDate>Thu, 03 Dec 2009 11:49:50 +0000</pubDate>
		<guid isPermaLink="false">/blogs/jimmy_bogard/archive/2009/12/02/the-template-method-is-a-lie.aspx#comment-2037</guid>
		<description>I&#039;m struggling to see why the template pattern is inherently procedural rather than OO.  Jimmy could you elaborate further?</description>
		<content:encoded><![CDATA[<p>I&#8217;m struggling to see why the template pattern is inherently procedural rather than OO.  Jimmy could you elaborate further?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
