<?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: Rethinking the traditional DAO pattern</title>
	<atom:link href="http://thediscoblog.com/2008/06/17/rethinking-the-traditional-dao-pattern/feed/" rel="self" type="application/rss+xml" />
	<link>http://thediscoblog.com/2008/06/17/rethinking-the-traditional-dao-pattern/</link>
	<description>Can you dig it man?</description>
	<pubDate>Thu, 20 Nov 2008 12:18:44 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
		<item>
		<title>By: Andy</title>
		<link>http://thediscoblog.com/2008/06/17/rethinking-the-traditional-dao-pattern/#comment-69412</link>
		<dc:creator>Andy</dc:creator>
		<pubDate>Tue, 08 Jul 2008 14:55:00 +0000</pubDate>
		<guid isPermaLink="false">http://thediscoblog.com/2008/06/17/rethinking-the-traditional-dao-pattern/#comment-69412</guid>
		<description>Wow, Kenrick-- that's a slick idea! I need to explore method injection more as its a powerful technique in Spring that is similar to a lot of the MOP features you get in Groovy. Thanks for pointing that out, man!</description>
		<content:encoded><![CDATA[<p>Wow, Kenrick&#8211; that&#8217;s a slick idea! I need to explore method injection more as its a powerful technique in Spring that is similar to a lot of the MOP features you get in Groovy. Thanks for pointing that out, man!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kenrick Chien</title>
		<link>http://thediscoblog.com/2008/06/17/rethinking-the-traditional-dao-pattern/#comment-69409</link>
		<dc:creator>Kenrick Chien</dc:creator>
		<pubDate>Tue, 08 Jul 2008 14:17:57 +0000</pubDate>
		<guid isPermaLink="false">http://thediscoblog.com/2008/06/17/rethinking-the-traditional-dao-pattern/#comment-69409</guid>
		<description>Interesting idea, to put CRUD logic in the domain object/POJO.  Adding to what James said, you could use "lookup method injection" (see section  3.3.8.1 at http://static.springframework.org/spring/docs/2.0.x/reference/beans.html) anytime you wanted your POJO, and have Spring manage the DAO dependency by injecting it, instead of looking it up statically.
This way, if you're using the full Spring stack, your beans would all be wired when your container starts up and 
the domain object could be easily unit tested by mocking out the DAO interface w/EasyMock, JMock, etc.

Thanks for sharing this idea.</description>
		<content:encoded><![CDATA[<p>Interesting idea, to put CRUD logic in the domain object/POJO.  Adding to what James said, you could use &#8220;lookup method injection&#8221; (see section  3.3.8.1 at <a href="http://static.springframework.org/spring/docs/2.0.x/reference/beans.html" rel="nofollow">http://static.springframework.org/spring/docs/2.0.x/reference/beans.html</a>) anytime you wanted your POJO, and have Spring manage the DAO dependency by injecting it, instead of looking it up statically.<br />
This way, if you&#8217;re using the full Spring stack, your beans would all be wired when your container starts up and<br />
the domain object could be easily unit tested by mocking out the DAO interface w/EasyMock, JMock, etc.</p>
<p>Thanks for sharing this idea.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: rails 2 0 oracle</title>
		<link>http://thediscoblog.com/2008/06/17/rethinking-the-traditional-dao-pattern/#comment-68855</link>
		<dc:creator>rails 2 0 oracle</dc:creator>
		<pubDate>Sat, 05 Jul 2008 11:45:29 +0000</pubDate>
		<guid isPermaLink="false">http://thediscoblog.com/2008/06/17/rethinking-the-traditional-dao-pattern/#comment-68855</guid>
		<description>[...] resource??s hip client interface from its data access mechanisms??? meaning that clients to a partichttp://thediscoblog.com/2008/06/17/rethinking-the-traditional-dao-pattern/scroll down to read an excerpt from this article - ACM QueueTune in to learn how oracle plans to [...]</description>
		<content:encoded><![CDATA[<p>[...] resource??s hip client interface from its data access mechanisms??? meaning that clients to a partichttp://thediscoblog.com/2008/06/17/rethinking-the-traditional-dao-pattern/scroll down to read an excerpt from this article - ACM QueueTune in to learn how oracle plans to [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Software Development</title>
		<link>http://thediscoblog.com/2008/06/17/rethinking-the-traditional-dao-pattern/#comment-67953</link>
		<dc:creator>Software Development</dc:creator>
		<pubDate>Mon, 30 Jun 2008 09:09:19 +0000</pubDate>
		<guid isPermaLink="false">http://thediscoblog.com/2008/06/17/rethinking-the-traditional-dao-pattern/#comment-67953</guid>
		<description>hey

Really nice tips!

will try to keep it in my mind 

thanks!</description>
		<content:encoded><![CDATA[<p>hey</p>
<p>Really nice tips!</p>
<p>will try to keep it in my mind </p>
<p>thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: DZone weekly links #3 &#124; Sergi Castillo</title>
		<link>http://thediscoblog.com/2008/06/17/rethinking-the-traditional-dao-pattern/#comment-67737</link>
		<dc:creator>DZone weekly links #3 &#124; Sergi Castillo</dc:creator>
		<pubDate>Sun, 29 Jun 2008 07:19:32 +0000</pubDate>
		<guid isPermaLink="false">http://thediscoblog.com/2008/06/17/rethinking-the-traditional-dao-pattern/#comment-67737</guid>
		<description>[...] Rethinking the traditional DAO pattern [...]</description>
		<content:encoded><![CDATA[<p>[...] Rethinking the traditional DAO pattern [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andy</title>
		<link>http://thediscoblog.com/2008/06/17/rethinking-the-traditional-dao-pattern/#comment-67243</link>
		<dc:creator>Andy</dc:creator>
		<pubDate>Wed, 25 Jun 2008 20:53:56 +0000</pubDate>
		<guid isPermaLink="false">http://thediscoblog.com/2008/06/17/rethinking-the-traditional-dao-pattern/#comment-67243</guid>
		<description>Stephan- you are correct-- my approach does make testing a bit more challenging-- so long as your domain objects remain simple bean-like objects though, do you really need to unit test them? That is, don't they only hold true meaning when they are wired to some data store? I'm thinking that integration-like tests are more realistic for domain objects; consequently, I don't mind too much that to work with these objects, as I've coded them, I need to have a live database. 

You raise great points-- thanks for sharing! And thanks for the pointer to Qi4J! This is interesting stuff!</description>
		<content:encoded><![CDATA[<p>Stephan- you are correct&#8211; my approach does make testing a bit more challenging&#8211; so long as your domain objects remain simple bean-like objects though, do you really need to unit test them? That is, don&#8217;t they only hold true meaning when they are wired to some data store? I&#8217;m thinking that integration-like tests are more realistic for domain objects; consequently, I don&#8217;t mind too much that to work with these objects, as I&#8217;ve coded them, I need to have a live database. </p>
<p>You raise great points&#8211; thanks for sharing! And thanks for the pointer to Qi4J! This is interesting stuff!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stephan Schmidt</title>
		<link>http://thediscoblog.com/2008/06/17/rethinking-the-traditional-dao-pattern/#comment-67061</link>
		<dc:creator>Stephan Schmidt</dc:creator>
		<pubDate>Tue, 24 Jun 2008 20:56:44 +0000</pubDate>
		<guid isPermaLink="false">http://thediscoblog.com/2008/06/17/rethinking-the-traditional-dao-pattern/#comment-67061</guid>
		<description>I still like and use Dao objects. Folding the Dao into the Domain object combines two concerns, reduced reusability, makes testing more difficult and is harder to maintain.

From my point of view, every class should satisfy one concern, not several ones. Perhaps that's the reason I like ideas like Qi4J for it's composite oriented programming.

Peace
-stephan</description>
		<content:encoded><![CDATA[<p>I still like and use Dao objects. Folding the Dao into the Domain object combines two concerns, reduced reusability, makes testing more difficult and is harder to maintain.</p>
<p>From my point of view, every class should satisfy one concern, not several ones. Perhaps that&#8217;s the reason I like ideas like Qi4J for it&#8217;s composite oriented programming.</p>
<p>Peace<br />
-stephan</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andy</title>
		<link>http://thediscoblog.com/2008/06/17/rethinking-the-traditional-dao-pattern/#comment-67241</link>
		<dc:creator>Andy</dc:creator>
		<pubDate>Wed, 18 Jun 2008 12:49:07 +0000</pubDate>
		<guid isPermaLink="false">http://thediscoblog.com/2008/06/17/rethinking-the-traditional-dao-pattern/#comment-67241</guid>
		<description>James- I didn't consider the aspect approach, but I think it's an excellent idea!</description>
		<content:encoded><![CDATA[<p>James- I didn&#8217;t consider the aspect approach, but I think it&#8217;s an excellent idea!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: James</title>
		<link>http://thediscoblog.com/2008/06/17/rethinking-the-traditional-dao-pattern/#comment-66287</link>
		<dc:creator>James</dc:creator>
		<pubDate>Wed, 18 Jun 2008 12:41:32 +0000</pubDate>
		<guid isPermaLink="false">http://thediscoblog.com/2008/06/17/rethinking-the-traditional-dao-pattern/#comment-66287</guid>
		<description>Thanks for sharing your approach.
Perhaps you've considered this, but I think spring could wire your domain object with aspectJ or loadtimeweaving, instead of the static code to find or load the spring context.</description>
		<content:encoded><![CDATA[<p>Thanks for sharing your approach.<br />
Perhaps you&#8217;ve considered this, but I think spring could wire your domain object with aspectJ or loadtimeweaving, instead of the static code to find or load the spring context.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: smith mountain lake &#124; Hottags</title>
		<link>http://thediscoblog.com/2008/06/17/rethinking-the-traditional-dao-pattern/#comment-66233</link>
		<dc:creator>smith mountain lake &#124; Hottags</dc:creator>
		<pubDate>Wed, 18 Jun 2008 06:11:59 +0000</pubDate>
		<guid isPermaLink="false">http://thediscoblog.com/2008/06/17/rethinking-the-traditional-dao-pattern/#comment-66233</guid>
		<description>[...] Rethinking the traditional DAO patternscenario &#34;the domain object should faciliate creating new instances&#34;, { given &#34;a new race is created&#34;, { new Race(&#34;SML 10K&#34;, new Date(), 6.2, &#34;race the hills of Smith Mountain lake&#34;).create() } then &#34;the domain class should actually &#8230;The Disco Blog - http://thediscoblog.com   pay per click advertising [...]</description>
		<content:encoded><![CDATA[<p>[...] Rethinking the traditional DAO patternscenario &quot;the domain object should faciliate creating new instances&quot;, { given &quot;a new race is created&quot;, { new Race(&quot;SML 10K&quot;, new Date(), 6.2, &quot;race the hills of Smith Mountain lake&quot;).create() } then &quot;the domain class should actually &#8230;The Disco Blog - <a href="http://thediscoblog.com" rel="nofollow">http://thediscoblog.com</a>   pay per click advertising [...]</p>
]]></content:encoded>
	</item>
</channel>
</rss>
