<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>eSoftHead, a Vietnam Software Outsourcing Company&#187; Object Oriented and Design</title>
	<atom:link href="http://blog.esofthead.com/category/object-oriented-and-design/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.esofthead.com</link>
	<description>The official blog of eSoftHead Company</description>
	<lastBuildDate>Thu, 01 Jul 2010 21:17:40 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Object caching using Spring, Ehcache</title>
		<link>http://blog.esofthead.com/object-caching-using-spring-ehcache/</link>
		<comments>http://blog.esofthead.com/object-caching-using-spring-ehcache/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 21:56:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Object Oriented and Design]]></category>
		<category><![CDATA[Software Development Process]]></category>
		<category><![CDATA[Software Engineer]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Caching]]></category>
		<category><![CDATA[Development Practices]]></category>
		<category><![CDATA[Ehcache]]></category>
		<category><![CDATA[Spring]]></category>

		<guid isPermaLink="false">http://blog.esofthead.com/object-caching-using-spring-ehcache/</guid>
		<description><![CDATA[Caching is quite important to boost the application performance. There are many cache libraries in Java world, both commercial and open source. You should choose the existing library instead creating your own library. I see some guys in my previous companies develop their own cache, and it is not good for their project. Instead of [...]]]></description>
			<content:encoded><![CDATA[<p class="first-child "><span title="C" class="cap"><span>C</span></span>aching is quite important to boost the application performance. There are many cache libraries in Java world, both commercial and open source. You should choose the existing library instead creating your own library. I see some guys in my previous companies develop their own cache, and it is not good for their project. Instead of spending time on project business features, guy spent much time to create the perfect library and maintain it through the project life cycle. Another case is using the Map and its relative classes for caching, it makes the application could not scalable and it does not provide the flexible caching mechanism the cache should have. Of course, we need to create the cache library if there is no good one in the market, but it is not true. There are many good cache libraries in Java world, one of them is Ehcache (<a href="http://ehcache.sourceforge.net/">http://ehcache.sourceforge.net/</a>). Ehcache is the excellent library provides to community with high quality, good documentation, simple use and wide adoption by other popular frameworks. It takes development team 5-10 minutes to set up the caching (of course, if you are fresher you must spend more time to understand the caching mechanism), so why you do not use such library instead of creating your own library?</p>
<p>In our application, we use Spring as IoC container, though set up the Ehcache manager is the easy task but we would like to use it with our Spring beans and exposed it as Osgi service. Spring modules is the good library help us easy in <span id="more-223"></span>configuration. It provides the consistent abstraction caching to our application, hence we can use our cache facade with other caching libraries such as JBoss cache, JCS, OScache without chaging our application code. You could download the Spring Modules at <a href="https://springmodules.dev.java.net/">https://springmodules.dev.java.net/</a>.</p>
<p>Here are the following steps to configure Ehcache in Spring application</p>
<p><strong>Configuring caching via ehcache.xml file</strong></p>
<pre lang="xml" xml:space="preserve" xml:lang="xml">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
</pre>
<pre lang="xml" xml:space="preserve" xml:lang="xml">
&lt;ehcache xmlns:xsi=&quot;<a href="http://www.w3.org/2001/XMLSchema-instance">http://www.w3.org/2001/XMLSchema-instance</a>&quot;
 xsi:noNamespaceSchemaLocation=&quot;ehcache.xsd&quot;&gt;
</pre>
<pre lang="xml" xml:space="preserve" xml:lang="xml">
 &lt;!--
 Configure it if you have overflowToDisk or diskPersistent enabled for any cache.
 java.io.tmpdir - Default temp file path
 --&gt;
 &lt;diskStore path=&quot;java.io.tmpdir&quot; /&gt;
</pre>
<pre lang="xml" xml:space="preserve" xml:lang="xml">
 &lt;!--
</pre>
<pre lang="xml" xml:space="preserve" xml:lang="xml">
    Mandatory Default Cache configuration. These settings will be applied to caches
    created programmtically using CacheManager.add(String cacheName).
</pre>
<pre lang="xml" xml:space="preserve" xml:lang="xml">
    The defaultCache has an implicit name &quot;default&quot; which is a reserved cache name.
    --&gt;
 &lt;defaultCache maxElementsInMemory=&quot;10000&quot; eternal=&quot;false&quot;
  timeToIdleSeconds=&quot;120&quot; timeToLiveSeconds=&quot;120&quot; overflowToDisk=&quot;true&quot;
  diskSpoolBufferSizeMB=&quot;30&quot; maxElementsOnDisk=&quot;10000000&quot;
  diskPersistent=&quot;false&quot; diskExpiryThreadIntervalSeconds=&quot;120&quot;
  memoryStoreEvictionPolicy=&quot;LRU&quot; /&gt;
</pre>
<pre lang="xml" xml:space="preserve" xml:lang="xml">
 &lt;!--
</pre>
<pre lang="xml" xml:space="preserve" xml:lang="xml">
    Sample cache named sampleCache1
    This cache contains a maximum in memory of 10000 elements, and will expire
    an element if it is idle for more than 5 minutes and lives for more than
    10 minutes.
</pre>
<pre lang="xml" xml:space="preserve" xml:lang="xml">
    If there are more than 10000 elements it will overflow to the
    disk cache, which in this configuration will go to wherever java.io.tmp is
    defined on your system. On a standard Linux system this will be /tmp&quot;

 --&gt;
 &lt;cache name=&quot;engroupCache&quot; maxElementsInMemory=&quot;10000&quot;
  maxElementsOnDisk=&quot;10000000&quot; eternal=&quot;false&quot; overflowToDisk=&quot;true&quot;
  diskSpoolBufferSizeMB=&quot;20&quot; timeToIdleSeconds=&quot;300&quot;
  timeToLiveSeconds=&quot;600&quot; memoryStoreEvictionPolicy=&quot;LFU&quot; /&gt;
&lt;/ehcache&gt;
</pre>
<p><strong>Declarating Ehcache in Spring context</strong></p>
<pre lang="xml" xml:space="preserve" xml:lang="xml">
&lt;bean id=&quot;cacheManager&quot;
 class=&quot;org.springframework.cache.ehcache.EhCacheManagerFactoryBean&quot;&gt;
 &lt;property name=&quot;configLocation&quot;&gt;
  &lt;value&gt;classpath:ehcache.xml&lt;/value&gt;
 &lt;/property&gt;
&lt;/bean&gt;
&lt;/pre&gt;
&lt;pre lang=&quot;xml&quot; xml:space=&quot;preserve&quot; xml:lang=&quot;xml&quot;&gt;
&lt;bean id=&quot;cacheProviderFacade&quot;
 class=&quot;org.springmodules.cache.provider.ehcache.EhCacheFacade&quot;&gt;
 &lt;property name=&quot;cacheManager&quot; ref=&quot;cacheManager&quot; /&gt;
&lt;/bean&gt;
</pre>
<p>
<strong>Programmatic use</strong>
</p>
<p>
Using ehcache is so simple, a unit test to make the test whether configuration is set up correctly and take the simple put/get could explain all.</p>
<pre class="java5">@RunWith<span style="color: #66cc66;">&#40;</span>EngroupClassRunner.<span style="color: #000000; font-weight: bold;">class</span><span style="color: #66cc66;">&#41;</span>
@ContextConfiguration<span style="color: #66cc66;">&#40;</span>locations = <span style="color: #66cc66;">&#123;</span> <span style="color: #ff0000;">&quot;/META-INF/spring/cache-context.xml&quot;</span> <span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> CacheTest <span style="color: #66cc66;">&#123;</span>
    @Autowired
    <span style="color: #000000; font-weight: bold;">protected</span> CacheProviderFacade cacheProviderFacade;</pre>
<pre class="java5">    @Test
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #993333;">void</span> testCacheConfiguration<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
        Assert.<span style="color: #006600;">assertNotNull</span><span style="color: #66cc66;">&#40;</span>cacheProviderFacade<span style="color: #66cc66;">&#41;</span>;</pre>
<pre class="java5">        EhCacheCachingModel model = <span style="color: #000000; font-weight: bold;">new</span> EhCacheCachingModel<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
        model.<span style="color: #006600;">setCacheName</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;engroupCache&quot;</span><span style="color: #66cc66;">&#41;</span>;</pre>
<pre class="java5">        cacheProviderFacade.<span style="color: #006600;">putInCache</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;a&quot;</span>, model, <span style="color: #000000; font-weight: bold;">new</span> <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Integer.html"><span style="color: #aaaadd; font-weight: bold;">Integer</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
        <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Integer.html"><span style="color: #aaaadd; font-weight: bold;">Integer</span></a> fromCache = <span style="color: #66cc66;">&#40;</span><a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Integer.html"><span style="color: #aaaadd; font-weight: bold;">Integer</span></a><span style="color: #66cc66;">&#41;</span> cacheProviderFacade.<span style="color: #006600;">getFromCache</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;a&quot;</span>,
                model<span style="color: #66cc66;">&#41;</span>;
        Assert.<span style="color: #006600;">assertEquals</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Integer.html"><span style="color: #aaaadd; font-weight: bold;">Integer</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>, fromCache<span style="color: #66cc66;">&#41;</span>;
    <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre>
<p class="zoundry_raven_tags">Besides of using ehcache to create the session like variable in our application, we would like to use ehcache to cache SQL statement in iBatis and integrate with Terracotta to complete our distributing caching solution in our future project. I will keep the post on further caching usage in future posts. Keep reading!</p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;title=Object%20caching%20using%20Spring%2C%20Ehcache&amp;bodytext=Caching%20is%20quite%20important%20to%20boost%20the%20application%20performance.%20There%20are%20many%20cache%20libraries%20in%20Java%20world%2C%20both%20commercial%20and%20open%20source.%20You%20should%20choose%20the%20existing%20library%20instead%20creating%20your%20own%20library.%20I%20see%20some%20guys%20in%20my%20previous%20c" title="Digg"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F" title="Sphinn"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;title=Object%20caching%20using%20Spring%2C%20Ehcache&amp;notes=Caching%20is%20quite%20important%20to%20boost%20the%20application%20performance.%20There%20are%20many%20cache%20libraries%20in%20Java%20world%2C%20both%20commercial%20and%20open%20source.%20You%20should%20choose%20the%20existing%20library%20instead%20creating%20your%20own%20library.%20I%20see%20some%20guys%20in%20my%20previous%20c" title="del.icio.us"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;t=Object%20caching%20using%20Spring%2C%20Ehcache" title="Facebook"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;title=Object%20caching%20using%20Spring%2C%20Ehcache" title="Mixx"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;title=Object%20caching%20using%20Spring%2C%20Ehcache&amp;annotation=Caching%20is%20quite%20important%20to%20boost%20the%20application%20performance.%20There%20are%20many%20cache%20libraries%20in%20Java%20world%2C%20both%20commercial%20and%20open%20source.%20You%20should%20choose%20the%20existing%20library%20instead%20creating%20your%20own%20library.%20I%20see%20some%20guys%20in%20my%20previous%20c" title="Google Bookmarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://barrapunto.com/submit.pl?subj=Object%20caching%20using%20Spring%2C%20Ehcache&amp;story=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F" title="BarraPunto"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/barrapunto.png" title="BarraPunto" alt="BarraPunto" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://bitacoras.com/anotaciones/http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F" title="Bitacoras.com"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/bitacoras.png" title="Bitacoras.com" alt="Bitacoras.com" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="blinkbits"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="blinkbits" alt="blinkbits" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;Title=Object%20caching%20using%20Spring%2C%20Ehcache" title="BlinkList"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blinklist.png" title="BlinkList" alt="BlinkList" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;title=Object%20caching%20using%20Spring%2C%20Ehcache" title="blogmarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blogmarks.png" title="blogmarks" alt="blogmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes" alt="BlogMemes" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Cn"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Cn" alt="BlogMemes Cn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Fr"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Fr" alt="BlogMemes Fr" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Jp"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Jp" alt="BlogMemes Jp" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Sp"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Sp" alt="BlogMemes Sp" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.blogospherenews.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;title=Object%20caching%20using%20Spring%2C%20Ehcache" title="Blogosphere News"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blogospherenews.png" title="Blogosphere News" alt="Blogosphere News" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Blogsvine"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Blogsvine" alt="Blogsvine" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://cimlap.blogter.hu/index.php?action=suggest_link&amp;title=Object%20caching%20using%20Spring%2C%20Ehcache&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F" title="blogtercimlap"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blogter.png" title="blogtercimlap" alt="blogtercimlap" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Book.mark.hu"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Book.mark.hu" alt="Book.mark.hu" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Bumpzee"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Bumpzee" alt="Bumpzee" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="co.mments"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="co.mments" alt="co.mments" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.connotea.org/addpopup?continue=confirm&amp;uri=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;title=Object%20caching%20using%20Spring%2C%20Ehcache&amp;description=Caching%20is%20quite%20important%20to%20boost%20the%20application%20performance.%20There%20are%20many%20cache%20libraries%20in%20Java%20world%2C%20both%20commercial%20and%20open%20source.%20You%20should%20choose%20the%20existing%20library%20instead%20creating%20your%20own%20library.%20I%20see%20some%20guys%20in%20my%20previous%20c" title="connotea"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/connotea.png" title="connotea" alt="connotea" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="De.lirio.us"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="De.lirio.us" alt="De.lirio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.designfloat.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;title=Object%20caching%20using%20Spring%2C%20Ehcache" title="Design Float"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/designfloat.png" title="Design Float" alt="Design Float" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;title=Object%20caching%20using%20Spring%2C%20Ehcache" title="DotNetKicks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/dotnetkicks.png" title="DotNetKicks" alt="DotNetKicks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;title=Object%20caching%20using%20Spring%2C%20Ehcache" title="DZone"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.ekudos.nl/artikel/nieuw?url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;title=Object%20caching%20using%20Spring%2C%20Ehcache&amp;desc=Caching%20is%20quite%20important%20to%20boost%20the%20application%20performance.%20There%20are%20many%20cache%20libraries%20in%20Java%20world%2C%20both%20commercial%20and%20open%20source.%20You%20should%20choose%20the%20existing%20library%20instead%20creating%20your%20own%20library.%20I%20see%20some%20guys%20in%20my%20previous%20c" title="eKudos"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/ekudos.png" title="eKudos" alt="eKudos" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="mailto:?subject=Object%20caching%20using%20Spring%2C%20Ehcache&amp;body=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F" title="email"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://cgi.fark.com/cgi/fark/farkit.pl?h=Object%20caching%20using%20Spring%2C%20Ehcache&amp;u=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F" title="Fark"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/fark.png" title="Fark" alt="Fark" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://faves.com/Authoring.aspx?u=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;title=Object%20caching%20using%20Spring%2C%20Ehcache" title="Faves"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/bluedot.png" title="Faves" alt="Faves" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="feedmelinks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="feedmelinks" alt="feedmelinks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://beta3.fleck.com/bookmarklet.php?url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;title=Object%20caching%20using%20Spring%2C%20Ehcache" title="Fleck"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/fleck.png" title="Fleck" alt="Fleck" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Furl"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Furl" alt="Furl" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="GeenRedactie"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="GeenRedactie" alt="GeenRedactie" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://globalgrind.com/submission/submit.aspx?url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;type=Article&amp;title=Object%20caching%20using%20Spring%2C%20Ehcache" title="Global Grind"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/globalgrind.png" title="Global Grind" alt="Global Grind" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.gwar.pl/DodajGwar.html?u=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F" title="Gwar"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/gwar.png" title="Gwar" alt="Gwar" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.haohaoreport.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;title=Object%20caching%20using%20Spring%2C%20Ehcache" title="Haohao"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/haohao.png" title="Haohao" alt="Haohao" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://healthranker.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;title=Object%20caching%20using%20Spring%2C%20Ehcache" title="HealthRanker"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/healthranker.png" title="HealthRanker" alt="HealthRanker" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.hemidemi.com/user_bookmark/new?title=Object%20caching%20using%20Spring%2C%20Ehcache&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F" title="Hemidemi"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/hemidemi.png" title="Hemidemi" alt="Hemidemi" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://identi.ca/notice/new?status_textarea=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F" title="Identi.ca"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/identica.png" title="Identi.ca" alt="Identi.ca" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.indianpad.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F" title="IndianPad"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/indianpad.png" title="IndianPad" alt="IndianPad" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://internetmedia.hu/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F" title="Internetmedia"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/im.png" title="Internetmedia" alt="Internetmedia" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="kick.ie"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="kick.ie" alt="kick.ie" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.kirtsy.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;title=Object%20caching%20using%20Spring%2C%20Ehcache" title="Kirtsy"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/kirtsy.png" title="Kirtsy" alt="Kirtsy" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://laaik.it/NewStoryCompact.aspx?uri=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;headline=Object%20caching%20using%20Spring%2C%20Ehcache&amp;cat=5e082fcc-8a3b-47e2-acec-fdf64ff19d12" title="laaik.it"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/laaikit.png" title="laaik.it" alt="laaik.it" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Leonaut"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Leonaut" alt="Leonaut" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkagogo.com/go/AddNoPopup?url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;title=Object%20caching%20using%20Spring%2C%20Ehcache" title="LinkaGoGo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkagogo.png" title="LinkaGoGo" alt="LinkaGoGo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://linkarena.com/bookmarks/addlink/?url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;title=Object%20caching%20using%20Spring%2C%20Ehcache" title="LinkArena"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkarena.png" title="LinkArena" alt="LinkArena" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;title=Object%20caching%20using%20Spring%2C%20Ehcache&amp;source=eSoftHead%2C+a+Vietnam+Software+Outsourcing+Company+The+official+blog+of+eSoftHead+Company&amp;summary=Caching%20is%20quite%20important%20to%20boost%20the%20application%20performance.%20There%20are%20many%20cache%20libraries%20in%20Java%20world%2C%20both%20commercial%20and%20open%20source.%20You%20should%20choose%20the%20existing%20library%20instead%20creating%20your%20own%20library.%20I%20see%20some%20guys%20in%20my%20previous%20c" title="LinkedIn"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkter.hu/index.php?action=suggest_link&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;title=Object%20caching%20using%20Spring%2C%20Ehcache" title="Linkter"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkter.png" title="Linkter" alt="Linkter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;title=Object%20caching%20using%20Spring%2C%20Ehcache" title="Live"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Ma.gnolia"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Ma.gnolia" alt="Ma.gnolia" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://meneame.net/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F" title="Meneame"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/meneame.png" title="Meneame" alt="Meneame" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mister-wong.com/addurl/?bm_url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;bm_description=Object%20caching%20using%20Spring%2C%20Ehcache&amp;plugin=soc" title="MisterWong"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong" alt="MisterWong" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;bm_description=Object%20caching%20using%20Spring%2C%20Ehcache&amp;plugin=soc" title="MisterWong.DE"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.muti.co.za/submit?url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;title=Object%20caching%20using%20Spring%2C%20Ehcache" title="muti"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/muti.png" title="muti" alt="muti" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://myshare.url.com.tw/index.php?func=newurl&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;desc=Object%20caching%20using%20Spring%2C%20Ehcache" title="MyShare"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/myshare.png" title="MyShare" alt="MyShare" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;t=Object%20caching%20using%20Spring%2C%20Ehcache" title="MySpace"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/myspace.png" title="MySpace" alt="MySpace" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.n4g.com/tips.aspx?url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;title=Object%20caching%20using%20Spring%2C%20Ehcache" title="N4G"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/n4g.png" title="N4G" alt="N4G" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.netvibes.com/share?title=Object%20caching%20using%20Spring%2C%20Ehcache&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F" title="Netvibes"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.netvouz.com/action/submitBookmark?url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;title=Object%20caching%20using%20Spring%2C%20Ehcache&amp;popup=no" title="Netvouz"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/netvouz.png" title="Netvouz" alt="Netvouz" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.newsvine.com/_tools/seed&amp;save?u=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;h=Object%20caching%20using%20Spring%2C%20Ehcache" title="NewsVine"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/newsvine.png" title="NewsVine" alt="NewsVine" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://nujij.nl/jij.lynkx?t=Object%20caching%20using%20Spring%2C%20Ehcache&amp;u=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;b=Caching%20is%20quite%20important%20to%20boost%20the%20application%20performance.%20There%20are%20many%20cache%20libraries%20in%20Java%20world%2C%20both%20commercial%20and%20open%20source.%20You%20should%20choose%20the%20existing%20library%20instead%20creating%20your%20own%20library.%20I%20see%20some%20guys%20in%20my%20previous%20c" title="NuJIJ"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/nujij.png" title="NuJIJ" alt="NuJIJ" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://ping.fm/ref/?link=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;title=Object%20caching%20using%20Spring%2C%20Ehcache&amp;body=Caching%20is%20quite%20important%20to%20boost%20the%20application%20performance.%20There%20are%20many%20cache%20libraries%20in%20Java%20world%2C%20both%20commercial%20and%20open%20source.%20You%20should%20choose%20the%20existing%20library%20instead%20creating%20your%20own%20library.%20I%20see%20some%20guys%20in%20my%20previous%20c" title="Ping.fm"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/ping.png" title="Ping.fm" alt="Ping.fm" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="PlugIM"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="PlugIM" alt="PlugIM" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Pownce"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Pownce" alt="Pownce" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="ppnow"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="ppnow" alt="ppnow" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;partner=sociable" title="Print"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.propeller.com/submit/?url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F" title="Propeller"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/propeller.png" title="Propeller" alt="Propeller" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://ratimarks.org/bookmarks.php/?action=add&address=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;title=Object%20caching%20using%20Spring%2C%20Ehcache" title="Ratimarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/ratimarks.png" title="Ratimarks" alt="Ratimarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://rec6.via6.com/link.php?url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;=Object%20caching%20using%20Spring%2C%20Ehcache" title="Rec6"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/rec6.png" title="Rec6" alt="Rec6" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;title=Object%20caching%20using%20Spring%2C%20Ehcache" title="Reddit"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="SalesMarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="SalesMarks" alt="SalesMarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.scoopeo.com/scoop/new?newurl=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;title=Object%20caching%20using%20Spring%2C%20Ehcache" title="Scoopeo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/scoopeo.png" title="Scoopeo" alt="Scoopeo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="scuttle"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="scuttle" alt="scuttle" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://segnalo.alice.it/post.html.php?url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;title=Object%20caching%20using%20Spring%2C%20Ehcache" title="Segnalo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/segnalo.png" title="Segnalo" alt="Segnalo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Shadows"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Shadows" alt="Shadows" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.simpy.com/simpy/LinkAdd.do?href=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;title=Object%20caching%20using%20Spring%2C%20Ehcache" title="Simpy"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/simpy.png" title="Simpy" alt="Simpy" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://slashdot.org/bookmark.pl?title=Object%20caching%20using%20Spring%2C%20Ehcache&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F" title="Slashdot"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/slashdot.png" title="Slashdot" alt="Slashdot" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Smarking"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Smarking" alt="Smarking" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://socialogs.com/add_story.php?story_url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;story_title=Object%20caching%20using%20Spring%2C%20Ehcache" title="Socialogs"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/socialogs.png" title="Socialogs" alt="Socialogs" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.sphere.com/search?q=sphereit:http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;title=Object%20caching%20using%20Spring%2C%20Ehcache" title="SphereIt"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/sphere.png" title="SphereIt" alt="SphereIt" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Spurl"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Spurl" alt="Spurl" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;title=Object%20caching%20using%20Spring%2C%20Ehcache" title="StumbleUpon"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Symbaloo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Symbaloo" alt="Symbaloo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Taggly"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Taggly" alt="Taggly" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TailRank"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="TailRank" alt="TailRank" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F" title="Technorati"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.thisnext.com/pick/new/submit/sociable/?url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;name=Object%20caching%20using%20Spring%2C%20Ehcache" title="ThisNext"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/thisnext.png" title="ThisNext" alt="ThisNext" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://tipd.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F" title="Tipd"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/tipd.png" title="Tipd" alt="Tipd" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;t=Object%20caching%20using%20Spring%2C%20Ehcache&amp;s=Caching%20is%20quite%20important%20to%20boost%20the%20application%20performance.%20There%20are%20many%20cache%20libraries%20in%20Java%20world%2C%20both%20commercial%20and%20open%20source.%20You%20should%20choose%20the%20existing%20library%20instead%20creating%20your%20own%20library.%20I%20see%20some%20guys%20in%20my%20previous%20c" title="Tumblr"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/tumblr.png" title="Tumblr" alt="Tumblr" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TwitThis"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.upnews.it/submit?url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;title=Object%20caching%20using%20Spring%2C%20Ehcache" title="Upnews"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/upnews.png" title="Upnews" alt="Upnews" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.webnews.de/einstellen?url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;title=Object%20caching%20using%20Spring%2C%20Ehcache" title="Webnews.de"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/webnews.png" title="Webnews.de" alt="Webnews.de" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://webride.org/discuss/split.php?uri=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;title=Object%20caching%20using%20Spring%2C%20Ehcache" title="Webride"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/webride.png" title="Webride" alt="Webride" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.com/vote?url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F" title="Wikio"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio" alt="Wikio" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.fr/vote?url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F" title="Wikio FR"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio FR" alt="Wikio FR" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.it/vote?url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F" title="Wikio IT"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio IT" alt="Wikio IT" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://wists.com/s.php?c=&amp;r=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;title=Object%20caching%20using%20Spring%2C%20Ehcache" title="Wists"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wists.png" title="Wists" alt="Wists" class="sociable-hovers sociable_wists" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wykop.pl/dodaj?url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F" title="Wykop"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wykop.png" title="Wykop" alt="Wykop" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.xerpi.com/block/add_link_from_extension?url=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;title=Object%20caching%20using%20Spring%2C%20Ehcache" title="Xerpi"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/xerpi.png" title="Xerpi" alt="Xerpi" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;submitHeadline=Object%20caching%20using%20Spring%2C%20Ehcache&amp;submitSummary=Caching%20is%20quite%20important%20to%20boost%20the%20application%20performance.%20There%20are%20many%20cache%20libraries%20in%20Java%20world%2C%20both%20commercial%20and%20open%20source.%20You%20should%20choose%20the%20existing%20library%20instead%20creating%20your%20own%20library.%20I%20see%20some%20guys%20in%20my%20previous%20c&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="YahooMyWeb"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="YahooMyWeb" alt="YahooMyWeb" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://yigg.de/neu?exturl=http%3A%2F%2Fblog.esofthead.com%2Fobject-caching-using-spring-ehcache%2F&amp;exttitle=Object%20caching%20using%20Spring%2C%20Ehcache" title="Yigg"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/yiggit.png" title="Yigg" alt="Yigg" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://blog.esofthead.com/object-caching-using-spring-ehcache/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Integration of Jackrabbit OCM and Spring (updated version)</title>
		<link>http://blog.esofthead.com/integration-of-jackrabbit-ocm-and-spring-newer-version/</link>
		<comments>http://blog.esofthead.com/integration-of-jackrabbit-ocm-and-spring-newer-version/#comments</comments>
		<pubDate>Thu, 26 Mar 2009 10:04:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Engroup]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Object Oriented and Design]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[ECM]]></category>
		<category><![CDATA[Jackrabbit]]></category>
		<category><![CDATA[Spring]]></category>

		<guid isPermaLink="false">http://blog.esofthead.com/?p=174</guid>
		<description><![CDATA[In the previous post Jackrabbit OCM and Spring, I have outlined the way of integrating between Jacckrabbit OCM (jackrabbit 1.5.0-snapshot) and Spring. The time flies help us have more JCR knowledge, jackrabbit api becomes more stable and our Engroup ECM implementation is changed. Instead of creating the total new JCR node types for our domain [...]]]></description>
			<content:encoded><![CDATA[<p class="first-child "><span title="I" class="cap"><span>I</span></span>n the previous post <a href="http://blog.esofthead.com/?p=90">Jackrabbit OCM and Spring</a>, I have outlined the way of integrating between Jacckrabbit OCM (jackrabbit 1.5.0-snapshot) and Spring. The time flies help us have more JCR knowledge, jackrabbit api becomes more stable and our Engroup ECM implementation is changed. Instead of creating the total new JCR node types for our domain classes in the previous version, we extends our node types base on the standard JCR node types as nt:file, nt:folder. In addition, our unit test is re-written for simpleness and make higher coverage rate. <span id="more-174"></span><br />
You can download our example in <a href="http://blog.esofthead.com/content/files/engroup_ecm.zip">example zip file</a> with note that this example is the cut-off version of Engroup ECM API that limits handling simple file, folder instances. Because <a href="http://esofthead.com/node/25">Engroup</a> runs on Osgi platform, and we already<br />
packaged our libraries as Osgi bundles. To reduce our efforts in editing this cut-off version, we use our libraries<br />
at <a href="http://engroup.sourceforge.net/maven2/">http://engroup.sourceforge.net/maven2/</a> instead the libraries in standard maven repository. It will takes your time to download Engroup libraries at the first time.</p>
<p><strong style="FONT-SIZE: 1.2em">Basic Jackrabbit OCM and Spring configuration</strong></p>
<pre lang="xml" xml:lang="xml">&lt;bean id="repository"
  class="org.springmodules.jcr.jackrabbit.RepositoryFactoryBean"&gt;
    &lt;property name="configuration"
      value="classpath:jackrabbit-repo-test.xml" /&gt;
    &lt;property name="homeDir" value="." /&gt;
 &lt;/bean&gt;</pre>
<pre lang="xml" xml:lang="xml"> &lt;bean id="jcrSessionFactory"
  class="org.springmodules.jcr.jackrabbit.ocm.JackrabbitSessionFactory"&gt;
     &lt;property name="repository" ref="repository" /&gt;
     &lt;property name="credentials"&gt;
         &lt;bean class="javax.jcr.SimpleCredentials"&gt;
             &lt;constructor-arg index="0" value="superuser" /&gt;
             &lt;!-- create the credentials using a bean factory --&gt;
             &lt;constructor-arg index="1"&gt;
                 &lt;bean factory-bean="password" factory-method="toCharArray" /&gt;
             &lt;/constructor-arg&gt;
         &lt;/bean&gt;
     &lt;/property&gt;
     &lt;property name="skipExistingNamespaces" value="true"/&gt;
     &lt;property name="namespaces"&gt;
         &lt;props&gt;
             &lt;prop key="engroup"&gt;http://esofthead.com/engroup&lt;/prop&gt;
         &lt;/props&gt;
     &lt;/property&gt;
     &lt;property name="nodeTypes2Import" value="custom_nodetypes_test.xml" /&gt;
 &lt;/bean&gt;
 &lt;!-- create the password to return it as a char[] --&gt;
 &lt;bean id="password" class="java.lang.String"&gt;
     &lt;constructor-arg index="0" value="superuser" /&gt;
 &lt;/bean&gt;
 &lt;bean id="jcrMappingTemplate"
  class="org.springmodules.jcr.jackrabbit.ocm.JcrMappingTemplate"&gt;
     &lt;constructor-arg index="0" ref="jcrSessionFactory" /&gt;
     &lt;constructor-arg index="1" ref="jcrMappingDescriptor" /&gt;
 &lt;/bean&gt;</pre>
<p><br/><br />
<strong style="FONT-SIZE: 1.2em">Declaring annotation classes</strong></p>
<pre lang="xml" xml:lang="xml">&lt;bean id="jcrMappingDescriptor"
  class="org.apache.jackrabbit.ocm.mapper.impl.annotation.AnnotationMapperImpl"&gt;
    &lt;constructor-arg index="0"&gt;
        &lt;list&gt;
            &lt;value&gt;com.engroup.module.ecm.domain.Content&lt;/value&gt;
            &lt;value&gt;com.engroup.module.ecm.domain.File&lt;/value&gt;
            &lt;value&gt;com.engroup.module.ecm.domain.Folder&lt;/value&gt;
            &lt;value&gt;com.engroup.module.ecm.domain.Resource&lt;/value&gt;
        &lt;/list&gt;
     &lt;/constructor-arg&gt;
 &lt;/bean&gt;</pre>
<p><br/><br />
<span style="FONT-SIZE: 1.2em"><strong>Transaction support</strong></span></p>
<pre lang="xml" xml:lang="xml"> &lt;bean id="jcrTransactionManager"
  class="org.springmodules.jcr.jackrabbit.LocalTransactionManager"&gt;
     &lt;property name="sessionFactory" ref="jcrSessionFactory" /&gt;
 &lt;/bean&gt;
 &lt;bean id="baseTransactionProxy"
  class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
  abstract="true"&gt;
     &lt;property name="transactionManager"&gt;
         &lt;ref bean="jcrTransactionManager" /&gt;
     &lt;/property&gt;
     &lt;property name="transactionAttributes"&gt;
         &lt;props&gt;
             &lt;prop key="save*"&gt;PROPAGATION_REQUIRED&lt;/prop&gt;
             &lt;prop key="*"&gt;PROPAGATION_REQUIRED,readonly&lt;/prop&gt;
         &lt;/props&gt;
     &lt;/property&gt;
 &lt;/bean&gt;</pre>
<pre lang="xml" xml:lang="xml"> &lt;bean id="internalFileSystemService"
  class="com.engroup.module.ecm.service.impl.FileSystemServiceImpl"&gt;
     &lt;property name="jcrTemplate" ref="jcrMappingTemplate" /&gt;
 &lt;/bean&gt;</pre>
<pre lang="xml" xml:lang="xml"> &lt;bean id="fileSystemService" parent="baseTransactionProxy"&gt;
     &lt;qualifier value="proxy" /&gt;
     &lt;property name="proxyInterfaces"&gt;
         &lt;value&gt;
             com.engroup.module.ecm.service.FileSystemService
         &lt;/value&gt;
      &lt;/property&gt;
      &lt;property name="target"&gt;
          &lt;ref bean="internalFileSystemService" /&gt;
      &lt;/property&gt;
      &lt;property name="transactionAttributes"&gt;
          &lt;props&gt;
              &lt;prop key="*"&gt;PROPAGATION_REQUIRED&lt;/prop&gt;
          &lt;/props&gt;
      &lt;/property&gt;
 &lt;/bean&gt;</pre>
<p><br/><br />
<strong style="FONT-SIZE: 1.2em">Custom JCR node types</strong></p>
<p>Depends on your context, you could want to write custom JCR node types such as add description field into File class. Fairly easy to do so by declaring custom node types in custom_nodetypes_test.xml file:</p>
<pre lang="xml" xml:lang="xml">&lt;!--It is a must node type for OCM support--&gt;
&lt;nodeType name="ocm:discriminator" isMixin="true"&gt;
    &lt;supertypes&gt;
        &lt;supertype&gt;nt:base&lt;/supertype&gt;
    &lt;/supertypes&gt;
    &lt;propertyDefinition name="ocm_classname" requiredType="String"
        autoCreated="false" mandatory="true" onParentVersion="COPY"
        protected="false" multiple="false" /&gt;
 &lt;/nodeType&gt; 

 &lt;nodeType name="engroup:hierarchyNode" isMixin="false"
  hasOrderableChildNodes="false" primaryItemName=""&gt;
     &lt;supertypes&gt;
         &lt;supertype&gt;nt:hierarchyNode&lt;/supertype&gt;
     &lt;/supertypes&gt;
     &lt;propertyDefinition name="jcr:description" requiredType="String"
         autoCreated="false" mandatory="false" onParentVersion="COPY"
         protected="false" multiple="false" /&gt;
     &lt;propertyDefinition name="jcr:owner" requiredType="String"
         autoCreated="false" mandatory="false" onParentVersion="COPY"
         protected="false" multiple="false" /&gt;
 &lt;/nodeType&gt;</pre>
<p><br/><br />
<strong style="FONT-SIZE: 1.2em">Writing unit test</strong></p>
<p>Unit test is our standard and it is time to write some test cases to test Engroup ECM API. We will use the Spring<br />
Test Framework to test our spring bean. One more concern is choosing appropriate Jackrabbit Persistent Manager for<br />
testing. Jackrabbit supports various Persistent Manager such as File System, Database, InMemory. In our product, we<br />
use Database Persistent Manager, but for testing purpose the InMemory Persistent Manager is the good choice for fast<br />
and cleaning data after running test. You could configure it in Jackrabbit configuration file</p>
<pre lang="xml" xml:lang="xml">&lt;FileSystem class="org.apache.jackrabbit.core.fs.mem.MemoryFileSystem"/&gt;
...Workspace section
    &lt;PersistenceManager class="org.apache.jackrabbit.core.persistence.mem.InMemPersistenceManager"&gt;
        &lt;param name="persistent" value="false"/&gt;
    &lt;/PersistenceManager&gt;
...Version section
    &lt;PersistenceManager class="org.apache.jackrabbit.core.persistence.mem.InMemPersistenceManager"&gt;
        &lt;param name="persistent" value="false"/&gt;
    &lt;/PersistenceManager&gt;</pre>
<p>Write FileSystemService unit test:</p>
<pre lang="java5" xml:lang="java5">@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "/ecm-context-test.xml" })
public class FileSystemServiceTest {
    @Autowired
    @Qualifier("proxy")
    protected FileSystemService fileSystemService;
...
}</pre>
<p><br/><br />
And add some test method:</p>
<pre lang="java5" xml:lang="java5">@Test
public void testUpdateFileWithVersion() {
    Resource resource = new Resource();
    resource.setData(new ByteArrayInputStream("this is the content"
            .getBytes()));
    resource.setLastModified(Calendar.getInstance());
    resource.setMimeType("plain/text");
    File file = new File();
    file.setPath("/A");
    file.setResource(resource);
    fileSystemService.save(file);

    Resource resource2 = new Resource();
    resource2.setData(new ByteArrayInputStream("this is the content 2"
            .getBytes()));
    resource2.setLastModified(Calendar.getInstance());
    resource2.setMimeType("plain/x");
    file.setResource(resource2);
    fileSystemService.update(file);
    Collection&lt;Version&gt; versions = fileSystemService
            .getVersionHistory(ContentConstants.FILE_ROOT_PATH + "/A");
    Assert.assertEquals(2, versions.size());
    File latestFileVersion = fileSystemService.getFileByVersion(
            ContentConstants.FILE_ROOT_PATH + "/A", "1.0");
    Assert.assertEquals("plain/x", latestFileVersion.getResource()
            .getMimeType());
    fileSystemService.remove(file);
}</pre>
<p>You could download the <a href="http://blog.esofthead.com/content/files/engroup_ecm.zip">example</a>, see more details how to integrate Jackrabbit OCM and Spring, run the test and provide your feedbacks if any.</p>
<p class="zoundry_bw_tags"><a href="http://blog.esofthead.com/content/files/engroup_ecm.zip">Source code</a><br />
<!-- Tag links generated by Zoundry Blog Writer. Do not manually edit. http://www.zoundry.com --></p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29&amp;bodytext=In%20the%20previous%20post%20Jackrabbit%20OCM%20and%20Spring%2C%20I%20have%20outlined%20the%20way%20of%20integrating%20between%20Jacckrabbit%20OCM%20%28jackrabbit%201.5.0-snapshot%29%20and%20Spring.%20The%20time%20flies%20help%20us%20have%20more%20JCR%20knowledge%2C%20jackrabbit%20api%20becomes%20more%20stable%20and%20our%20Engroup%20" title="Digg"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F" title="Sphinn"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29&amp;notes=In%20the%20previous%20post%20Jackrabbit%20OCM%20and%20Spring%2C%20I%20have%20outlined%20the%20way%20of%20integrating%20between%20Jacckrabbit%20OCM%20%28jackrabbit%201.5.0-snapshot%29%20and%20Spring.%20The%20time%20flies%20help%20us%20have%20more%20JCR%20knowledge%2C%20jackrabbit%20api%20becomes%20more%20stable%20and%20our%20Engroup%20" title="del.icio.us"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;t=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Facebook"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Mixx"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29&amp;annotation=In%20the%20previous%20post%20Jackrabbit%20OCM%20and%20Spring%2C%20I%20have%20outlined%20the%20way%20of%20integrating%20between%20Jacckrabbit%20OCM%20%28jackrabbit%201.5.0-snapshot%29%20and%20Spring.%20The%20time%20flies%20help%20us%20have%20more%20JCR%20knowledge%2C%20jackrabbit%20api%20becomes%20more%20stable%20and%20our%20Engroup%20" title="Google Bookmarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://barrapunto.com/submit.pl?subj=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29&amp;story=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F" title="BarraPunto"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/barrapunto.png" title="BarraPunto" alt="BarraPunto" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://bitacoras.com/anotaciones/http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F" title="Bitacoras.com"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/bitacoras.png" title="Bitacoras.com" alt="Bitacoras.com" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="blinkbits"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="blinkbits" alt="blinkbits" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;Title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="BlinkList"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blinklist.png" title="BlinkList" alt="BlinkList" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="blogmarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blogmarks.png" title="blogmarks" alt="blogmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes" alt="BlogMemes" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Cn"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Cn" alt="BlogMemes Cn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Fr"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Fr" alt="BlogMemes Fr" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Jp"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Jp" alt="BlogMemes Jp" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Sp"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Sp" alt="BlogMemes Sp" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.blogospherenews.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Blogosphere News"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blogospherenews.png" title="Blogosphere News" alt="Blogosphere News" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Blogsvine"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Blogsvine" alt="Blogsvine" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://cimlap.blogter.hu/index.php?action=suggest_link&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F" title="blogtercimlap"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blogter.png" title="blogtercimlap" alt="blogtercimlap" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Book.mark.hu"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Book.mark.hu" alt="Book.mark.hu" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Bumpzee"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Bumpzee" alt="Bumpzee" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="co.mments"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="co.mments" alt="co.mments" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.connotea.org/addpopup?continue=confirm&amp;uri=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29&amp;description=In%20the%20previous%20post%20Jackrabbit%20OCM%20and%20Spring%2C%20I%20have%20outlined%20the%20way%20of%20integrating%20between%20Jacckrabbit%20OCM%20%28jackrabbit%201.5.0-snapshot%29%20and%20Spring.%20The%20time%20flies%20help%20us%20have%20more%20JCR%20knowledge%2C%20jackrabbit%20api%20becomes%20more%20stable%20and%20our%20Engroup%20" title="connotea"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/connotea.png" title="connotea" alt="connotea" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="De.lirio.us"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="De.lirio.us" alt="De.lirio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.designfloat.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Design Float"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/designfloat.png" title="Design Float" alt="Design Float" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="DotNetKicks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/dotnetkicks.png" title="DotNetKicks" alt="DotNetKicks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="DZone"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.ekudos.nl/artikel/nieuw?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29&amp;desc=In%20the%20previous%20post%20Jackrabbit%20OCM%20and%20Spring%2C%20I%20have%20outlined%20the%20way%20of%20integrating%20between%20Jacckrabbit%20OCM%20%28jackrabbit%201.5.0-snapshot%29%20and%20Spring.%20The%20time%20flies%20help%20us%20have%20more%20JCR%20knowledge%2C%20jackrabbit%20api%20becomes%20more%20stable%20and%20our%20Engroup%20" title="eKudos"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/ekudos.png" title="eKudos" alt="eKudos" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="mailto:?subject=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29&amp;body=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F" title="email"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://cgi.fark.com/cgi/fark/farkit.pl?h=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29&amp;u=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F" title="Fark"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/fark.png" title="Fark" alt="Fark" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://faves.com/Authoring.aspx?u=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Faves"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/bluedot.png" title="Faves" alt="Faves" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="feedmelinks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="feedmelinks" alt="feedmelinks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://beta3.fleck.com/bookmarklet.php?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Fleck"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/fleck.png" title="Fleck" alt="Fleck" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Furl"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Furl" alt="Furl" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="GeenRedactie"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="GeenRedactie" alt="GeenRedactie" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://globalgrind.com/submission/submit.aspx?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;type=Article&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Global Grind"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/globalgrind.png" title="Global Grind" alt="Global Grind" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.gwar.pl/DodajGwar.html?u=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F" title="Gwar"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/gwar.png" title="Gwar" alt="Gwar" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.haohaoreport.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Haohao"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/haohao.png" title="Haohao" alt="Haohao" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://healthranker.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="HealthRanker"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/healthranker.png" title="HealthRanker" alt="HealthRanker" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.hemidemi.com/user_bookmark/new?title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F" title="Hemidemi"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/hemidemi.png" title="Hemidemi" alt="Hemidemi" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://identi.ca/notice/new?status_textarea=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F" title="Identi.ca"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/identica.png" title="Identi.ca" alt="Identi.ca" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.indianpad.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F" title="IndianPad"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/indianpad.png" title="IndianPad" alt="IndianPad" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://internetmedia.hu/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F" title="Internetmedia"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/im.png" title="Internetmedia" alt="Internetmedia" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="kick.ie"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="kick.ie" alt="kick.ie" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.kirtsy.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Kirtsy"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/kirtsy.png" title="Kirtsy" alt="Kirtsy" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://laaik.it/NewStoryCompact.aspx?uri=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;headline=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29&amp;cat=5e082fcc-8a3b-47e2-acec-fdf64ff19d12" title="laaik.it"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/laaikit.png" title="laaik.it" alt="laaik.it" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Leonaut"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Leonaut" alt="Leonaut" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkagogo.com/go/AddNoPopup?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="LinkaGoGo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkagogo.png" title="LinkaGoGo" alt="LinkaGoGo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://linkarena.com/bookmarks/addlink/?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="LinkArena"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkarena.png" title="LinkArena" alt="LinkArena" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29&amp;source=eSoftHead%2C+a+Vietnam+Software+Outsourcing+Company+The+official+blog+of+eSoftHead+Company&amp;summary=In%20the%20previous%20post%20Jackrabbit%20OCM%20and%20Spring%2C%20I%20have%20outlined%20the%20way%20of%20integrating%20between%20Jacckrabbit%20OCM%20%28jackrabbit%201.5.0-snapshot%29%20and%20Spring.%20The%20time%20flies%20help%20us%20have%20more%20JCR%20knowledge%2C%20jackrabbit%20api%20becomes%20more%20stable%20and%20our%20Engroup%20" title="LinkedIn"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkter.hu/index.php?action=suggest_link&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Linkter"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkter.png" title="Linkter" alt="Linkter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Live"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Ma.gnolia"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Ma.gnolia" alt="Ma.gnolia" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://meneame.net/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F" title="Meneame"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/meneame.png" title="Meneame" alt="Meneame" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mister-wong.com/addurl/?bm_url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;bm_description=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29&amp;plugin=soc" title="MisterWong"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong" alt="MisterWong" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;bm_description=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29&amp;plugin=soc" title="MisterWong.DE"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.muti.co.za/submit?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="muti"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/muti.png" title="muti" alt="muti" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://myshare.url.com.tw/index.php?func=newurl&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;desc=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="MyShare"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/myshare.png" title="MyShare" alt="MyShare" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;t=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="MySpace"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/myspace.png" title="MySpace" alt="MySpace" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.n4g.com/tips.aspx?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="N4G"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/n4g.png" title="N4G" alt="N4G" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.netvibes.com/share?title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F" title="Netvibes"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.netvouz.com/action/submitBookmark?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29&amp;popup=no" title="Netvouz"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/netvouz.png" title="Netvouz" alt="Netvouz" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.newsvine.com/_tools/seed&amp;save?u=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;h=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="NewsVine"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/newsvine.png" title="NewsVine" alt="NewsVine" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://nujij.nl/jij.lynkx?t=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29&amp;u=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;b=In%20the%20previous%20post%20Jackrabbit%20OCM%20and%20Spring%2C%20I%20have%20outlined%20the%20way%20of%20integrating%20between%20Jacckrabbit%20OCM%20%28jackrabbit%201.5.0-snapshot%29%20and%20Spring.%20The%20time%20flies%20help%20us%20have%20more%20JCR%20knowledge%2C%20jackrabbit%20api%20becomes%20more%20stable%20and%20our%20Engroup%20" title="NuJIJ"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/nujij.png" title="NuJIJ" alt="NuJIJ" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://ping.fm/ref/?link=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29&amp;body=In%20the%20previous%20post%20Jackrabbit%20OCM%20and%20Spring%2C%20I%20have%20outlined%20the%20way%20of%20integrating%20between%20Jacckrabbit%20OCM%20%28jackrabbit%201.5.0-snapshot%29%20and%20Spring.%20The%20time%20flies%20help%20us%20have%20more%20JCR%20knowledge%2C%20jackrabbit%20api%20becomes%20more%20stable%20and%20our%20Engroup%20" title="Ping.fm"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/ping.png" title="Ping.fm" alt="Ping.fm" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="PlugIM"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="PlugIM" alt="PlugIM" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Pownce"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Pownce" alt="Pownce" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="ppnow"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="ppnow" alt="ppnow" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;partner=sociable" title="Print"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.propeller.com/submit/?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F" title="Propeller"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/propeller.png" title="Propeller" alt="Propeller" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://ratimarks.org/bookmarks.php/?action=add&address=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Ratimarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/ratimarks.png" title="Ratimarks" alt="Ratimarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://rec6.via6.com/link.php?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Rec6"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/rec6.png" title="Rec6" alt="Rec6" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Reddit"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="SalesMarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="SalesMarks" alt="SalesMarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.scoopeo.com/scoop/new?newurl=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Scoopeo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/scoopeo.png" title="Scoopeo" alt="Scoopeo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="scuttle"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="scuttle" alt="scuttle" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://segnalo.alice.it/post.html.php?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Segnalo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/segnalo.png" title="Segnalo" alt="Segnalo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Shadows"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Shadows" alt="Shadows" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.simpy.com/simpy/LinkAdd.do?href=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Simpy"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/simpy.png" title="Simpy" alt="Simpy" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://slashdot.org/bookmark.pl?title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F" title="Slashdot"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/slashdot.png" title="Slashdot" alt="Slashdot" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Smarking"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Smarking" alt="Smarking" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://socialogs.com/add_story.php?story_url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;story_title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Socialogs"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/socialogs.png" title="Socialogs" alt="Socialogs" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.sphere.com/search?q=sphereit:http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="SphereIt"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/sphere.png" title="SphereIt" alt="SphereIt" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Spurl"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Spurl" alt="Spurl" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="StumbleUpon"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Symbaloo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Symbaloo" alt="Symbaloo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Taggly"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Taggly" alt="Taggly" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TailRank"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="TailRank" alt="TailRank" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F" title="Technorati"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.thisnext.com/pick/new/submit/sociable/?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;name=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="ThisNext"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/thisnext.png" title="ThisNext" alt="ThisNext" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://tipd.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F" title="Tipd"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/tipd.png" title="Tipd" alt="Tipd" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;t=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29&amp;s=In%20the%20previous%20post%20Jackrabbit%20OCM%20and%20Spring%2C%20I%20have%20outlined%20the%20way%20of%20integrating%20between%20Jacckrabbit%20OCM%20%28jackrabbit%201.5.0-snapshot%29%20and%20Spring.%20The%20time%20flies%20help%20us%20have%20more%20JCR%20knowledge%2C%20jackrabbit%20api%20becomes%20more%20stable%20and%20our%20Engroup%20" title="Tumblr"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/tumblr.png" title="Tumblr" alt="Tumblr" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TwitThis"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.upnews.it/submit?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Upnews"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/upnews.png" title="Upnews" alt="Upnews" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.webnews.de/einstellen?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Webnews.de"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/webnews.png" title="Webnews.de" alt="Webnews.de" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://webride.org/discuss/split.php?uri=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Webride"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/webride.png" title="Webride" alt="Webride" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.com/vote?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F" title="Wikio"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio" alt="Wikio" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.fr/vote?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F" title="Wikio FR"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio FR" alt="Wikio FR" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.it/vote?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F" title="Wikio IT"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio IT" alt="Wikio IT" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://wists.com/s.php?c=&amp;r=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Wists"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wists.png" title="Wists" alt="Wists" class="sociable-hovers sociable_wists" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wykop.pl/dodaj?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F" title="Wykop"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wykop.png" title="Wykop" alt="Wykop" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.xerpi.com/block/add_link_from_extension?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Xerpi"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/xerpi.png" title="Xerpi" alt="Xerpi" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;submitHeadline=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29&amp;submitSummary=In%20the%20previous%20post%20Jackrabbit%20OCM%20and%20Spring%2C%20I%20have%20outlined%20the%20way%20of%20integrating%20between%20Jacckrabbit%20OCM%20%28jackrabbit%201.5.0-snapshot%29%20and%20Spring.%20The%20time%20flies%20help%20us%20have%20more%20JCR%20knowledge%2C%20jackrabbit%20api%20becomes%20more%20stable%20and%20our%20Engroup%20&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="YahooMyWeb"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="YahooMyWeb" alt="YahooMyWeb" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://yigg.de/neu?exturl=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;exttitle=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Yigg"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/yiggit.png" title="Yigg" alt="Yigg" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://blog.esofthead.com/integration-of-jackrabbit-ocm-and-spring-newer-version/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Template architecture for software rapid development &#8211; part 1</title>
		<link>http://blog.esofthead.com/template-architecture-for-software-rapid-development-part-1/</link>
		<comments>http://blog.esofthead.com/template-architecture-for-software-rapid-development-part-1/#comments</comments>
		<pubDate>Tue, 12 Jun 2007 01:45:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Object Oriented and Design]]></category>
		<category><![CDATA[Software Development Process]]></category>
		<category><![CDATA[Software Engineer]]></category>

		<guid isPermaLink="false">http://blog.esofthead.com/?p=64</guid>
		<description><![CDATA[To inspire my two previous posts are 'MVC pattern: Controller is too big' and 'Template projects in software development'., the current post is written base on my deeper thinking how to create the re-usable artifacts in a software company. More ideas are completed after my study on Software Product Line and Software Factories. I will [...]]]></description>
			<content:encoded><![CDATA[<p class="first-child "><span title="T" class="cap"><span>T</span></span>o inspire my two previous posts are 'MVC pattern: Controller is too big' and 'Template projects in software development'., the current post is written base on my deeper thinking how to create the re-usable artifacts in a software company. More ideas are completed after my study on Software Product Line and Software Factories. I will write two posts about the template architecture, the first post is the introduction about the needs and benefits of template architecture, the second post is my suggestion of building template architecture and how to manage it via knowledge management system.<span id="more-64"></span></p>
<p>First, we go to the common related technical problems</p>
<p><strong>1. Lack high technical skilled resources</strong></p>
<h4></h4>
<p>In the resource market, there are just rare high technical skilled resources who has experience of developing architecture, design for various kinds of project and technologies. In Software Company, the ratio of technical architectures resource also is less than the needs of organization.</p>
<p><strong>2. Re-discovering and Re-inventing common solution domain</strong></p>
<h4></h4>
<p>Solution domain is discovered or invented in other product is not distributed to related products in a product line. Organization takes a lot effort for re-create solution for problem that is solved before, the solution can catch the traps of previous ones or the quality is not good enough.</p>
<p><strong>3. </strong><font color="#000000"><strong>Monolithic Construction - No reusable components</strong></font></p>
<p>Not only solution domain is not kept in all products in product line but reusable components across products, product lines are not defined. In addition, organization does not have strategy of defining the re-use level of component, what is reused and how it is re-used. The rigid architecture is also the reason cause all components in one product are heavily tight, that cause its components can not be used separately and it is hard to bring one component to other products except bring many related components (but they are not related business domain of new product) and perform tuning code for new products.</p>
<p><strong>4. Inefficient of R&amp;D activities</strong></p>
<h4></h4>
<p>Nowadays, there are many methodologies, toolkits, frameworks that help development members can increase their productivity and organization can deliver the better quality product with competitive cost. Normally, the cost for R&amp;D occupies 2-3% operation cost of organization and it is not much cost to have the outstanding result especially in small-medium size company. In any company, focusing on some specific technologies and tools is the wise approach to strengthen organization knowledge instead of assigning limited number of resources to research many tools, frameworks</p>
<p>Long time ago, software organizations realize that some components can be re-used across projects and they define the process that promote re-usability of software artifacts, they are documentation, architecture, module, components or API library. However, lacking the good process also the criteria, guidelines, strategy for creating reusable artifacts take many companies effort without the valuable result. By categorizing projects into separated product lines that helps software company can limit the number of product lines they are developing also define the better strategy for reuse. The reusability is not limited in API library, component etc but the group of products that share the similar business domain or architecture, technology. Product lines is the rather new terminology and there are only few resources about it, recently Software Factories term are raised many times and it has different meaning to Product Line though it is derived from Product Line. However both of them promote the reusability of software artifacts.</p>
<p><strong>Product lines introduction</strong></p>
<p>According to [9], Software product lines represent a significant departure from software reuse schemes in which attempts are made to make assets as general as possible without the context provided by an architecture and a scope definition, and from opportunistic reuse schemes in which low-payoff assets are scavenged adhoc from a reuse repository.</p>
<p>Product lines pay off because the investment in the core assets is allocated across the entire family of products. The core assets provide a production capability that allows rapid construction of high-quality products.</p>
<p><a href="http://www.haiphucnguyen.net/blog/wp-content/images/694f48739711_10AF1/clip_image0012.jpg" atomicselection="true"><img src="http://www.haiphucnguyen.net/blog/wp-content/images/694f48739711_10AF1/clip_image0011.jpg" style="border-width: 0px" border="0" height="146" width="240" /></a></p>
<p>Build a product line is a complicated task. In general, it takes a long time for building a set of related products especially it is true for outsource company that usually not control what products they will receive in future. Though maintain the business modeling across the products in one product line is difficult but the task that maintain the architecture also the reusable components in one product line is simpler. One template architecture is applied for one product line that is distinguished to others by architecture, technology also the domain knowledge. One template architecture consists:</p>
<p><strong>Architecture design: </strong></p>
<ul>
<li><strong>Software patterns:</strong> Integration patterns, design patterns, infrastructure patterns.</li>
<li><strong>Object Oriented Principles:</strong> Open-Closed principles, Liskov principles, etc</li>
</ul>
<p><strong>Domain knowledge(s):</strong> Healthcare, eLearning, Telecom, etc</p>
<p><strong>Technology and Platforms:</strong></p>
<ul>
<li><strong>Operating system:</strong> Windows, Linux, …</li>
<li><strong>Platform:</strong> Java, .NET, etc and its version platform.</li>
</ul>
<p><strong>Re-usable components: </strong></p>
<ul>
<li><strong>Common API:</strong> validation, logging, caching etc</li>
<li><strong>Domain API:</strong> HL7 (Healthcare), Barcode, EDI etc</li>
</ul>
<p><strong>Development workspace:</strong></p>
<ul>
<li><strong>Tools:</strong> are used to build product base on template architecture. That includes development tool, build tool and deploy tool.</li>
<li><strong>Guidelines: </strong>document guides people how to build product base on template architecture. It includes using common patterns, object oriented principles also usage of common and domain API. In addition, it also guides the usage of tools or practices of implementing on specific problem domain.</li>
<li><strong>Samples: </strong>it guides development in practice via samples for basic problem that can serve to solve harder domain problem.</li>
</ul>
<p>There are two things need to be considered, they are domain knowledge (that belong to business area) and technical artifacts like architecture, components (that belongs to technical area). One architecture that fit with one domain also it depends on deployment model. Two template architectures can reuse the same artifacts, such as two healthcare applications on window and web environment can share the components like HL7, EDI etc but they can have different software patterns for separated deployment model.</p>
<p><strong>Benefits of template architecture</strong></p>
<p><strong>1. Increase productivity</strong></p>
<p>The easiest thing we can see that productivity is increased, the cost is decreased. Development team members do not need to create or implementation from scratch, but they develop base on an existing TA that have guidelines, best practices also expert can support them use the TA.</p>
<p><strong>2. Predictable result, higher quality</strong></p>
<p>Due to TA is built by experienced technical geeks, also it is contributed by many real practices from previous projects, the feasible of solution or architecture are proven that make any solution base on TA is predictable and it has good quality</p>
<p><strong>3. Re-use of skills, resources</strong></p>
<p>Lack of high technical resources also they are many frameworks, toolkits, etc that has the same functionalities cause R&amp;D is difficult to define what area they should focus in. By fixing with one solution for one kind of problem that cause organization gather all efforts for this problem instead of dispersing its effort. Members also learn the best tools, best practices of solution and have deep knowledge on it instead that they know many functional areas but only introduction level.</p>
<p><strong>4. Competitive advantage</strong></p>
<p>It is obvious that if one organization can provide the good solution to client, deliver the high quality product and the cost is competitive, that company has competitive advantage compare with its opponent.</p>
<p><strong>5.</strong> <strong>Resource allocation</strong></p>
<p>By simple usage of Template Architecture also it contains guidelines, practices. That free some experienced technical geeks outside project development. Team members can develop application base on Template Architecture, which are very easier to detect any violations to architecture and implementation. The experienced technical geeks can be assigned to more important tasks such as mentor technical activities, building other template architecture.</p>
<p><strong>Reference</strong></p>
<p>[1], Nguyen Phuc Hai – Template projects in Software Development, <a href="http://www.haiphucnguyen.net/blog/?p=36">http://www.haiphucnguyen.net/blog/?p=36</a></p>
<p>[2], Nguyen Phuc Hai – MVC Pattern: Controller is too big, <a href="http://www.haiphucnguyen.net/blog/?p=42">http://www.haiphucnguyen.net/blog/?p=42</a></p>
<p>[3], Software Factories – <a href="http://www.softwarefactories.com/">http://www.softwarefactories.com/</a></p>
<p>[4], Edward Bakker – Factories 201, <a href="http://www.edwardbakker.nl/">http://www.edwardbakker.nl/</a></p>
<p>[5], Spring Framework, <a href="http://www.springframework.org/">http://www.springframework.org</a></p>
<p>[6], Spring Modules, <a href="https://springmodules.dev.java.net/">https://springmodules.dev.java.net/</a></p>
<p>[7], Enterprise Library 3.0 – April 2007, Documentation</p>
<p>[8], Jezz Santos - Factories’ ABC, <a href="http://blogs.msdn.com/jezzsa/archive/2006/08/09/sfxjargon.aspx">http://blogs.msdn.com/jezzsa/archive/2006/08/09/sfxjargon.aspx</a></p>
<p>[9], Software Engineering Institute – Software Product Lines, <a href="http://www.sei.cmu.edu/productlines/">http://www.sei.cmu.edu/productlines/</a></p>
<p>[10], Gunther Lenz and Christoph Wienands - Practical Software Factories in .NET</p>
<p>[11], Jack Greenfield, Keith Short et al – Software Factories: Assembling Applications with Patterns, Models, Frameworks and Tools</p>
<p><a class="a2a_dd" onmouseover="a2a_show_dropdown(this)" onmouseout="a2a_onMouseOut_delay()" href="http://www.addtoany.com/subscribe?linkname=eSoftHead%20Blog%20Feed&amp;linkurl=http%3A%2F%2Fblog.esofthead.com%2F%3Ffeed%3Drss2"><img src="http://static.addtoany.com/buttons/subscribe_120_16.gif" width="120" height="16" border="0" alt="Subscribe"/></a><script type="text/javascript">a2a_linkname="eSoftHead Blog Feed";a2a_linkurl="http://blog.esofthead.com/?feed=rss2";</script><script type="text/javascript" src="http://static.addtoany.com/menu/feed.js"></script></p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201&amp;bodytext=To%20inspire%20my%20two%20previous%20posts%20are%20%27MVC%20pattern%3A%20Controller%20is%20too%20big%27%20and%20%27Template%20projects%20in%20software%20development%27.%2C%20the%20current%20post%20is%20written%20base%20on%20my%20deeper%20thinking%20how%20to%20create%20the%20re-usable%20artifacts%20in%20a%20software%20company.%20More%20ideas" title="Digg"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F" title="Sphinn"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201&amp;notes=To%20inspire%20my%20two%20previous%20posts%20are%20%27MVC%20pattern%3A%20Controller%20is%20too%20big%27%20and%20%27Template%20projects%20in%20software%20development%27.%2C%20the%20current%20post%20is%20written%20base%20on%20my%20deeper%20thinking%20how%20to%20create%20the%20re-usable%20artifacts%20in%20a%20software%20company.%20More%20ideas" title="del.icio.us"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;t=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201" title="Facebook"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201" title="Mixx"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201&amp;annotation=To%20inspire%20my%20two%20previous%20posts%20are%20%27MVC%20pattern%3A%20Controller%20is%20too%20big%27%20and%20%27Template%20projects%20in%20software%20development%27.%2C%20the%20current%20post%20is%20written%20base%20on%20my%20deeper%20thinking%20how%20to%20create%20the%20re-usable%20artifacts%20in%20a%20software%20company.%20More%20ideas" title="Google Bookmarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://barrapunto.com/submit.pl?subj=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201&amp;story=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F" title="BarraPunto"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/barrapunto.png" title="BarraPunto" alt="BarraPunto" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://bitacoras.com/anotaciones/http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F" title="Bitacoras.com"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/bitacoras.png" title="Bitacoras.com" alt="Bitacoras.com" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="blinkbits"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="blinkbits" alt="blinkbits" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;Title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201" title="BlinkList"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blinklist.png" title="BlinkList" alt="BlinkList" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201" title="blogmarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blogmarks.png" title="blogmarks" alt="blogmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes" alt="BlogMemes" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Cn"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Cn" alt="BlogMemes Cn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Fr"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Fr" alt="BlogMemes Fr" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Jp"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Jp" alt="BlogMemes Jp" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Sp"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Sp" alt="BlogMemes Sp" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.blogospherenews.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201" title="Blogosphere News"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blogospherenews.png" title="Blogosphere News" alt="Blogosphere News" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Blogsvine"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Blogsvine" alt="Blogsvine" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://cimlap.blogter.hu/index.php?action=suggest_link&amp;title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201&amp;url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F" title="blogtercimlap"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blogter.png" title="blogtercimlap" alt="blogtercimlap" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Book.mark.hu"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Book.mark.hu" alt="Book.mark.hu" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Bumpzee"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Bumpzee" alt="Bumpzee" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="co.mments"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="co.mments" alt="co.mments" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.connotea.org/addpopup?continue=confirm&amp;uri=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201&amp;description=To%20inspire%20my%20two%20previous%20posts%20are%20%27MVC%20pattern%3A%20Controller%20is%20too%20big%27%20and%20%27Template%20projects%20in%20software%20development%27.%2C%20the%20current%20post%20is%20written%20base%20on%20my%20deeper%20thinking%20how%20to%20create%20the%20re-usable%20artifacts%20in%20a%20software%20company.%20More%20ideas" title="connotea"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/connotea.png" title="connotea" alt="connotea" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="De.lirio.us"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="De.lirio.us" alt="De.lirio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.designfloat.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201" title="Design Float"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/designfloat.png" title="Design Float" alt="Design Float" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201" title="DotNetKicks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/dotnetkicks.png" title="DotNetKicks" alt="DotNetKicks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201" title="DZone"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.ekudos.nl/artikel/nieuw?url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201&amp;desc=To%20inspire%20my%20two%20previous%20posts%20are%20%27MVC%20pattern%3A%20Controller%20is%20too%20big%27%20and%20%27Template%20projects%20in%20software%20development%27.%2C%20the%20current%20post%20is%20written%20base%20on%20my%20deeper%20thinking%20how%20to%20create%20the%20re-usable%20artifacts%20in%20a%20software%20company.%20More%20ideas" title="eKudos"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/ekudos.png" title="eKudos" alt="eKudos" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="mailto:?subject=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201&amp;body=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F" title="email"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://cgi.fark.com/cgi/fark/farkit.pl?h=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201&amp;u=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F" title="Fark"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/fark.png" title="Fark" alt="Fark" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://faves.com/Authoring.aspx?u=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201" title="Faves"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/bluedot.png" title="Faves" alt="Faves" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="feedmelinks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="feedmelinks" alt="feedmelinks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://beta3.fleck.com/bookmarklet.php?url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201" title="Fleck"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/fleck.png" title="Fleck" alt="Fleck" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Furl"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Furl" alt="Furl" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="GeenRedactie"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="GeenRedactie" alt="GeenRedactie" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://globalgrind.com/submission/submit.aspx?url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;type=Article&amp;title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201" title="Global Grind"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/globalgrind.png" title="Global Grind" alt="Global Grind" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.gwar.pl/DodajGwar.html?u=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F" title="Gwar"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/gwar.png" title="Gwar" alt="Gwar" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.haohaoreport.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201" title="Haohao"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/haohao.png" title="Haohao" alt="Haohao" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://healthranker.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201" title="HealthRanker"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/healthranker.png" title="HealthRanker" alt="HealthRanker" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.hemidemi.com/user_bookmark/new?title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201&amp;url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F" title="Hemidemi"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/hemidemi.png" title="Hemidemi" alt="Hemidemi" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://identi.ca/notice/new?status_textarea=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F" title="Identi.ca"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/identica.png" title="Identi.ca" alt="Identi.ca" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.indianpad.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F" title="IndianPad"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/indianpad.png" title="IndianPad" alt="IndianPad" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://internetmedia.hu/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F" title="Internetmedia"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/im.png" title="Internetmedia" alt="Internetmedia" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="kick.ie"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="kick.ie" alt="kick.ie" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.kirtsy.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201" title="Kirtsy"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/kirtsy.png" title="Kirtsy" alt="Kirtsy" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://laaik.it/NewStoryCompact.aspx?uri=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;headline=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201&amp;cat=5e082fcc-8a3b-47e2-acec-fdf64ff19d12" title="laaik.it"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/laaikit.png" title="laaik.it" alt="laaik.it" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Leonaut"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Leonaut" alt="Leonaut" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkagogo.com/go/AddNoPopup?url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201" title="LinkaGoGo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkagogo.png" title="LinkaGoGo" alt="LinkaGoGo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://linkarena.com/bookmarks/addlink/?url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201" title="LinkArena"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkarena.png" title="LinkArena" alt="LinkArena" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201&amp;source=eSoftHead%2C+a+Vietnam+Software+Outsourcing+Company+The+official+blog+of+eSoftHead+Company&amp;summary=To%20inspire%20my%20two%20previous%20posts%20are%20%27MVC%20pattern%3A%20Controller%20is%20too%20big%27%20and%20%27Template%20projects%20in%20software%20development%27.%2C%20the%20current%20post%20is%20written%20base%20on%20my%20deeper%20thinking%20how%20to%20create%20the%20re-usable%20artifacts%20in%20a%20software%20company.%20More%20ideas" title="LinkedIn"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkter.hu/index.php?action=suggest_link&amp;url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201" title="Linkter"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkter.png" title="Linkter" alt="Linkter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201" title="Live"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Ma.gnolia"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Ma.gnolia" alt="Ma.gnolia" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://meneame.net/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F" title="Meneame"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/meneame.png" title="Meneame" alt="Meneame" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mister-wong.com/addurl/?bm_url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;bm_description=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201&amp;plugin=soc" title="MisterWong"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong" alt="MisterWong" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;bm_description=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201&amp;plugin=soc" title="MisterWong.DE"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.muti.co.za/submit?url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201" title="muti"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/muti.png" title="muti" alt="muti" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://myshare.url.com.tw/index.php?func=newurl&amp;url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;desc=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201" title="MyShare"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/myshare.png" title="MyShare" alt="MyShare" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;t=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201" title="MySpace"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/myspace.png" title="MySpace" alt="MySpace" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.n4g.com/tips.aspx?url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201" title="N4G"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/n4g.png" title="N4G" alt="N4G" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.netvibes.com/share?title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201&amp;url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F" title="Netvibes"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.netvouz.com/action/submitBookmark?url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201&amp;popup=no" title="Netvouz"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/netvouz.png" title="Netvouz" alt="Netvouz" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.newsvine.com/_tools/seed&amp;save?u=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;h=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201" title="NewsVine"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/newsvine.png" title="NewsVine" alt="NewsVine" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://nujij.nl/jij.lynkx?t=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201&amp;u=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;b=To%20inspire%20my%20two%20previous%20posts%20are%20%27MVC%20pattern%3A%20Controller%20is%20too%20big%27%20and%20%27Template%20projects%20in%20software%20development%27.%2C%20the%20current%20post%20is%20written%20base%20on%20my%20deeper%20thinking%20how%20to%20create%20the%20re-usable%20artifacts%20in%20a%20software%20company.%20More%20ideas" title="NuJIJ"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/nujij.png" title="NuJIJ" alt="NuJIJ" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://ping.fm/ref/?link=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201&amp;body=To%20inspire%20my%20two%20previous%20posts%20are%20%27MVC%20pattern%3A%20Controller%20is%20too%20big%27%20and%20%27Template%20projects%20in%20software%20development%27.%2C%20the%20current%20post%20is%20written%20base%20on%20my%20deeper%20thinking%20how%20to%20create%20the%20re-usable%20artifacts%20in%20a%20software%20company.%20More%20ideas" title="Ping.fm"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/ping.png" title="Ping.fm" alt="Ping.fm" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="PlugIM"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="PlugIM" alt="PlugIM" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Pownce"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Pownce" alt="Pownce" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="ppnow"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="ppnow" alt="ppnow" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;partner=sociable" title="Print"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.propeller.com/submit/?url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F" title="Propeller"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/propeller.png" title="Propeller" alt="Propeller" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://ratimarks.org/bookmarks.php/?action=add&address=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201" title="Ratimarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/ratimarks.png" title="Ratimarks" alt="Ratimarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://rec6.via6.com/link.php?url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201" title="Rec6"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/rec6.png" title="Rec6" alt="Rec6" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201" title="Reddit"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="SalesMarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="SalesMarks" alt="SalesMarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.scoopeo.com/scoop/new?newurl=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201" title="Scoopeo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/scoopeo.png" title="Scoopeo" alt="Scoopeo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="scuttle"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="scuttle" alt="scuttle" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://segnalo.alice.it/post.html.php?url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201" title="Segnalo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/segnalo.png" title="Segnalo" alt="Segnalo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Shadows"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Shadows" alt="Shadows" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.simpy.com/simpy/LinkAdd.do?href=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201" title="Simpy"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/simpy.png" title="Simpy" alt="Simpy" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://slashdot.org/bookmark.pl?title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201&amp;url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F" title="Slashdot"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/slashdot.png" title="Slashdot" alt="Slashdot" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Smarking"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Smarking" alt="Smarking" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://socialogs.com/add_story.php?story_url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;story_title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201" title="Socialogs"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/socialogs.png" title="Socialogs" alt="Socialogs" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.sphere.com/search?q=sphereit:http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201" title="SphereIt"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/sphere.png" title="SphereIt" alt="SphereIt" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Spurl"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Spurl" alt="Spurl" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201" title="StumbleUpon"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Symbaloo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Symbaloo" alt="Symbaloo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Taggly"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Taggly" alt="Taggly" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TailRank"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="TailRank" alt="TailRank" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F" title="Technorati"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.thisnext.com/pick/new/submit/sociable/?url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;name=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201" title="ThisNext"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/thisnext.png" title="ThisNext" alt="ThisNext" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://tipd.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F" title="Tipd"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/tipd.png" title="Tipd" alt="Tipd" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;t=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201&amp;s=To%20inspire%20my%20two%20previous%20posts%20are%20%27MVC%20pattern%3A%20Controller%20is%20too%20big%27%20and%20%27Template%20projects%20in%20software%20development%27.%2C%20the%20current%20post%20is%20written%20base%20on%20my%20deeper%20thinking%20how%20to%20create%20the%20re-usable%20artifacts%20in%20a%20software%20company.%20More%20ideas" title="Tumblr"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/tumblr.png" title="Tumblr" alt="Tumblr" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TwitThis"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.upnews.it/submit?url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201" title="Upnews"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/upnews.png" title="Upnews" alt="Upnews" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.webnews.de/einstellen?url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201" title="Webnews.de"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/webnews.png" title="Webnews.de" alt="Webnews.de" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://webride.org/discuss/split.php?uri=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201" title="Webride"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/webride.png" title="Webride" alt="Webride" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.com/vote?url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F" title="Wikio"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio" alt="Wikio" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.fr/vote?url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F" title="Wikio FR"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio FR" alt="Wikio FR" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.it/vote?url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F" title="Wikio IT"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio IT" alt="Wikio IT" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://wists.com/s.php?c=&amp;r=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201" title="Wists"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wists.png" title="Wists" alt="Wists" class="sociable-hovers sociable_wists" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wykop.pl/dodaj?url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F" title="Wykop"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wykop.png" title="Wykop" alt="Wykop" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.xerpi.com/block/add_link_from_extension?url=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;title=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201" title="Xerpi"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/xerpi.png" title="Xerpi" alt="Xerpi" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;submitHeadline=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201&amp;submitSummary=To%20inspire%20my%20two%20previous%20posts%20are%20%27MVC%20pattern%3A%20Controller%20is%20too%20big%27%20and%20%27Template%20projects%20in%20software%20development%27.%2C%20the%20current%20post%20is%20written%20base%20on%20my%20deeper%20thinking%20how%20to%20create%20the%20re-usable%20artifacts%20in%20a%20software%20company.%20More%20ideas&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="YahooMyWeb"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="YahooMyWeb" alt="YahooMyWeb" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://yigg.de/neu?exturl=http%3A%2F%2Fblog.esofthead.com%2Ftemplate-architecture-for-software-rapid-development-part-1%2F&amp;exttitle=Template%20architecture%20for%20software%20rapid%20development%20-%20part%201" title="Yigg"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/yiggit.png" title="Yigg" alt="Yigg" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://blog.esofthead.com/template-architecture-for-software-rapid-development-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MVC pattern: Controller is too big!</title>
		<link>http://blog.esofthead.com/mvc-pattern-controller-is-too-big/</link>
		<comments>http://blog.esofthead.com/mvc-pattern-controller-is-too-big/#comments</comments>
		<pubDate>Fri, 04 May 2007 01:35:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Object Oriented and Design]]></category>
		<category><![CDATA[Osgi]]></category>
		<category><![CDATA[Software Engineer]]></category>

		<guid isPermaLink="false">http://blog.esofthead.com/?p=55</guid>
		<description><![CDATA[All software engineers know the MVC pattern also it is applied in various projects from standalone to web or distributed application. However, while many Software Engineers have different view on Controller layer and many cases it is not managed well because the Controller layer must do many things and it is too big for maintenance! [...]]]></description>
			<content:encoded><![CDATA[<p class="first-child "><span title="A" class="cap"><span>A</span></span>ll software engineers know the MVC pattern also it is applied in various projects from standalone to web or distributed application. However, while many Software Engineers have different view on Controller layer and many cases it is not managed well because the Controller layer must do many things and it is too big for maintenance! <span id="more-55"></span>I just copy the definition of MVC pattern here from Wikipedia (<a href="http://en.wikipedia.org/wiki/Model-view-controller" title="http://en.wikipedia.org/wiki/Model-view-controller">http://en.wikipedia.org/wiki/Model-view-controller</a>)</p>
<dl>
<dt><strong>Model </strong> </dt>
<dd>The <strong>domain</strong>-specific representation of the information on which the application operates. It is a common misconception that the model is another name for the domain layer. Domain logic adds meaning to raw data (e.g., calculating if today is the user's birthday, or the totals, taxes and shipping charges for shopping cart items). </dd>
<dd>Many applications use a persistent storage mechanism (such as a database) to store data. MVC does not specifically mention the data access layer because it is understood to be underneath or encapsulated by the Model. </dd>
<dt><strong>View </strong> </dt>
<dd>Renders the model into a form suitable for interaction, typically a user interface element. </dd>
<dt><strong>Controller</strong> </dt>
<dd>Processes and responds to events, typically user actions, may invoke changes on the model. </dd>
</dl>
<p>Model and View is easily understand and be maintainable. However, when the TA define the architecture of some specific project, the Controller layer tends to become more complex when the project's size is increased. Base on the standard application, the controller will do:</p>
<ul>
<li>Binding the data from view layer to entity objects.</li>
<li>Format data.</li>
<li>Validate the constraints (data constraints, application constraints and business constraints)</li>
<li>Manage variables scope</li>
<li>Manage the transactions</li>
<li>Execute business logics</li>
<li>Call data access layer and save model to persistent place (database for example).</li>
</ul>
<p>Many tasks are handled in the typical MVC pattern architecture while view and model layer is rather simple and understandable. That is the root cause make some project apply the MVC pattern but still cause the bad quality on architecture. Let's dive in some specific code with me on typical Controller class:</p>
<p><em>public void execute (...args) {</em></p>
<p><em>     //Binding parameters from view to entity model</em></p>
<p><em>     //Format data if any</em></p>
<p><em>       Date d = DateFormater.format (str);</em></p>
<p><em>       ...</em></p>
<p><em>       //Validate the constraints</em></p>
<p><em>       Validator.validator (entity);</em></p>
<p><em>      // Manage transactions</em></p>
<p><em>      Transaction.begin();</em></p>
<p><em>      ...</em></p>
<p><em>      processBusinessRules() {</em></p>
<p><em>             ...</em></p>
<p><em>             dao.save(entity);</em></p>
<p><em>      }</em></p>
<p><em>      ...</em></p>
<p><em>      Transaction.end();</em></p>
<p><em>}</em></p>
<p>The code should be cleaner if we separate the execute methods into several smaller ones. However, the Controller class has many reasons for change. If you need to change the validation rules, you will modify the Controller class. If you need to change the business rule, you also need to modify the Controller class etc. So for each responsibility of Controller layer must do, the architecture should divide it into separate classes, each class only has one reason to change that means each class has only one responsibility.</p>
<p>Base on the above advise, I will have the following interface for each responsibility define above:</p>
<ul>
<li>IValidator: responsible for validation</li>
<li>ITransactionManager: responsible for transaction management</li>
<li>IService: responsible for specific processing business service</li>
<li>IDao: responsible for saving entity model to persistent storage.</li>
<li>...</li>
</ul>
<p>Next, the Controller class will combine all classes (instead methods as above example) in one place, so I have the interface IController that makes the Controller layer has tigh coupling with View layer. For specific Controller class, I generalize the overall business processing base on the template method:</p>
<p><em>class ControllerTemplate implements IController {</em></p>
<p><em>    IValidator validator;</em></p>
<p><em>    IService service;</em></p>
<p><em>    ...</em></p>
<p><em>    public void execute(...args) {</em></p>
<p><em>        binding.bind(args);</em></p>
<p><em>        validator.validator(entity);</em></p>
<p><em>        formater.format(entity)</em></p>
<p><em>        transaction.begin();</em></p>
<p><em>        businessHandle();</em></p>
<p><em>        transaction.end();</em></p>
<p><em>    }</em></p>
<p><em>     //need to be overidde</em></p>
<p><em>     protected void businessHandle();</em></p>
<p><em>}</em></p>
<p>It should be better, if I only need to change the way of binding data, I only modify the Binding class and I do not care about the change will break the rest. The design looks more better and easily maintainable. It could be cause better to make the above class Validator, Formatter, Controller, Service object etc are independent by using some IoC container such as Spring, IoC, Guice ...We have the similar approach in Spring MVC but I do not see the similar approach in standalone application. Forgive me, I do not follow standalone application trends for rather long time <img src='http://blog.esofthead.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> , but applying Spring or Guice framework you can make the same thing easily in standalone environment.</p>
<p><a class="a2a_dd" onmouseover="a2a_show_dropdown(this)" onmouseout="a2a_onMouseOut_delay()" href="http://www.addtoany.com/subscribe?linkname=eSoftHead%20Blog%20Feed&amp;linkurl=http%3A%2F%2Fblog.esofthead.com%2F%3Ffeed%3Drss2"><img src="http://static.addtoany.com/buttons/subscribe_120_16.gif" width="120" height="16" border="0" alt="Subscribe"/></a><script type="text/javascript">a2a_linkname="eSoftHead Blog Feed";a2a_linkurl="http://blog.esofthead.com/?feed=rss2";</script><script type="text/javascript" src="http://static.addtoany.com/menu/feed.js"></script></p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;title=MVC%20pattern%3A%20Controller%20is%20too%20big%21&amp;bodytext=All%20software%20engineers%20know%20the%20MVC%20pattern%20also%20it%20is%20applied%20in%20various%20projects%20from%20standalone%20to%20web%20or%20distributed%20application.%20However%2C%20while%20many%20Software%20Engineers%20have%20different%20view%20on%20Controller%20layer%20and%20many%20cases%20it%20is%20not%20managed%20well" title="Digg"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F" title="Sphinn"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;title=MVC%20pattern%3A%20Controller%20is%20too%20big%21&amp;notes=All%20software%20engineers%20know%20the%20MVC%20pattern%20also%20it%20is%20applied%20in%20various%20projects%20from%20standalone%20to%20web%20or%20distributed%20application.%20However%2C%20while%20many%20Software%20Engineers%20have%20different%20view%20on%20Controller%20layer%20and%20many%20cases%20it%20is%20not%20managed%20well" title="del.icio.us"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;t=MVC%20pattern%3A%20Controller%20is%20too%20big%21" title="Facebook"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;title=MVC%20pattern%3A%20Controller%20is%20too%20big%21" title="Mixx"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;title=MVC%20pattern%3A%20Controller%20is%20too%20big%21&amp;annotation=All%20software%20engineers%20know%20the%20MVC%20pattern%20also%20it%20is%20applied%20in%20various%20projects%20from%20standalone%20to%20web%20or%20distributed%20application.%20However%2C%20while%20many%20Software%20Engineers%20have%20different%20view%20on%20Controller%20layer%20and%20many%20cases%20it%20is%20not%20managed%20well" title="Google Bookmarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://barrapunto.com/submit.pl?subj=MVC%20pattern%3A%20Controller%20is%20too%20big%21&amp;story=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F" title="BarraPunto"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/barrapunto.png" title="BarraPunto" alt="BarraPunto" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://bitacoras.com/anotaciones/http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F" title="Bitacoras.com"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/bitacoras.png" title="Bitacoras.com" alt="Bitacoras.com" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="blinkbits"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="blinkbits" alt="blinkbits" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;Title=MVC%20pattern%3A%20Controller%20is%20too%20big%21" title="BlinkList"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blinklist.png" title="BlinkList" alt="BlinkList" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;title=MVC%20pattern%3A%20Controller%20is%20too%20big%21" title="blogmarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blogmarks.png" title="blogmarks" alt="blogmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes" alt="BlogMemes" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Cn"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Cn" alt="BlogMemes Cn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Fr"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Fr" alt="BlogMemes Fr" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Jp"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Jp" alt="BlogMemes Jp" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Sp"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Sp" alt="BlogMemes Sp" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.blogospherenews.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;title=MVC%20pattern%3A%20Controller%20is%20too%20big%21" title="Blogosphere News"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blogospherenews.png" title="Blogosphere News" alt="Blogosphere News" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Blogsvine"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Blogsvine" alt="Blogsvine" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://cimlap.blogter.hu/index.php?action=suggest_link&amp;title=MVC%20pattern%3A%20Controller%20is%20too%20big%21&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F" title="blogtercimlap"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blogter.png" title="blogtercimlap" alt="blogtercimlap" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Book.mark.hu"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Book.mark.hu" alt="Book.mark.hu" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Bumpzee"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Bumpzee" alt="Bumpzee" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="co.mments"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="co.mments" alt="co.mments" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.connotea.org/addpopup?continue=confirm&amp;uri=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;title=MVC%20pattern%3A%20Controller%20is%20too%20big%21&amp;description=All%20software%20engineers%20know%20the%20MVC%20pattern%20also%20it%20is%20applied%20in%20various%20projects%20from%20standalone%20to%20web%20or%20distributed%20application.%20However%2C%20while%20many%20Software%20Engineers%20have%20different%20view%20on%20Controller%20layer%20and%20many%20cases%20it%20is%20not%20managed%20well" title="connotea"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/connotea.png" title="connotea" alt="connotea" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="De.lirio.us"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="De.lirio.us" alt="De.lirio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.designfloat.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;title=MVC%20pattern%3A%20Controller%20is%20too%20big%21" title="Design Float"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/designfloat.png" title="Design Float" alt="Design Float" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;title=MVC%20pattern%3A%20Controller%20is%20too%20big%21" title="DotNetKicks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/dotnetkicks.png" title="DotNetKicks" alt="DotNetKicks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;title=MVC%20pattern%3A%20Controller%20is%20too%20big%21" title="DZone"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.ekudos.nl/artikel/nieuw?url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;title=MVC%20pattern%3A%20Controller%20is%20too%20big%21&amp;desc=All%20software%20engineers%20know%20the%20MVC%20pattern%20also%20it%20is%20applied%20in%20various%20projects%20from%20standalone%20to%20web%20or%20distributed%20application.%20However%2C%20while%20many%20Software%20Engineers%20have%20different%20view%20on%20Controller%20layer%20and%20many%20cases%20it%20is%20not%20managed%20well" title="eKudos"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/ekudos.png" title="eKudos" alt="eKudos" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="mailto:?subject=MVC%20pattern%3A%20Controller%20is%20too%20big%21&amp;body=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F" title="email"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://cgi.fark.com/cgi/fark/farkit.pl?h=MVC%20pattern%3A%20Controller%20is%20too%20big%21&amp;u=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F" title="Fark"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/fark.png" title="Fark" alt="Fark" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://faves.com/Authoring.aspx?u=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;title=MVC%20pattern%3A%20Controller%20is%20too%20big%21" title="Faves"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/bluedot.png" title="Faves" alt="Faves" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="feedmelinks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="feedmelinks" alt="feedmelinks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://beta3.fleck.com/bookmarklet.php?url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;title=MVC%20pattern%3A%20Controller%20is%20too%20big%21" title="Fleck"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/fleck.png" title="Fleck" alt="Fleck" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Furl"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Furl" alt="Furl" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="GeenRedactie"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="GeenRedactie" alt="GeenRedactie" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://globalgrind.com/submission/submit.aspx?url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;type=Article&amp;title=MVC%20pattern%3A%20Controller%20is%20too%20big%21" title="Global Grind"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/globalgrind.png" title="Global Grind" alt="Global Grind" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.gwar.pl/DodajGwar.html?u=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F" title="Gwar"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/gwar.png" title="Gwar" alt="Gwar" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.haohaoreport.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;title=MVC%20pattern%3A%20Controller%20is%20too%20big%21" title="Haohao"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/haohao.png" title="Haohao" alt="Haohao" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://healthranker.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;title=MVC%20pattern%3A%20Controller%20is%20too%20big%21" title="HealthRanker"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/healthranker.png" title="HealthRanker" alt="HealthRanker" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.hemidemi.com/user_bookmark/new?title=MVC%20pattern%3A%20Controller%20is%20too%20big%21&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F" title="Hemidemi"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/hemidemi.png" title="Hemidemi" alt="Hemidemi" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://identi.ca/notice/new?status_textarea=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F" title="Identi.ca"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/identica.png" title="Identi.ca" alt="Identi.ca" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.indianpad.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F" title="IndianPad"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/indianpad.png" title="IndianPad" alt="IndianPad" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://internetmedia.hu/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F" title="Internetmedia"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/im.png" title="Internetmedia" alt="Internetmedia" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="kick.ie"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="kick.ie" alt="kick.ie" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.kirtsy.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;title=MVC%20pattern%3A%20Controller%20is%20too%20big%21" title="Kirtsy"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/kirtsy.png" title="Kirtsy" alt="Kirtsy" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://laaik.it/NewStoryCompact.aspx?uri=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;headline=MVC%20pattern%3A%20Controller%20is%20too%20big%21&amp;cat=5e082fcc-8a3b-47e2-acec-fdf64ff19d12" title="laaik.it"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/laaikit.png" title="laaik.it" alt="laaik.it" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Leonaut"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Leonaut" alt="Leonaut" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkagogo.com/go/AddNoPopup?url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;title=MVC%20pattern%3A%20Controller%20is%20too%20big%21" title="LinkaGoGo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkagogo.png" title="LinkaGoGo" alt="LinkaGoGo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://linkarena.com/bookmarks/addlink/?url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;title=MVC%20pattern%3A%20Controller%20is%20too%20big%21" title="LinkArena"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkarena.png" title="LinkArena" alt="LinkArena" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;title=MVC%20pattern%3A%20Controller%20is%20too%20big%21&amp;source=eSoftHead%2C+a+Vietnam+Software+Outsourcing+Company+The+official+blog+of+eSoftHead+Company&amp;summary=All%20software%20engineers%20know%20the%20MVC%20pattern%20also%20it%20is%20applied%20in%20various%20projects%20from%20standalone%20to%20web%20or%20distributed%20application.%20However%2C%20while%20many%20Software%20Engineers%20have%20different%20view%20on%20Controller%20layer%20and%20many%20cases%20it%20is%20not%20managed%20well" title="LinkedIn"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkter.hu/index.php?action=suggest_link&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;title=MVC%20pattern%3A%20Controller%20is%20too%20big%21" title="Linkter"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkter.png" title="Linkter" alt="Linkter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;title=MVC%20pattern%3A%20Controller%20is%20too%20big%21" title="Live"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Ma.gnolia"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Ma.gnolia" alt="Ma.gnolia" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://meneame.net/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F" title="Meneame"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/meneame.png" title="Meneame" alt="Meneame" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mister-wong.com/addurl/?bm_url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;bm_description=MVC%20pattern%3A%20Controller%20is%20too%20big%21&amp;plugin=soc" title="MisterWong"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong" alt="MisterWong" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;bm_description=MVC%20pattern%3A%20Controller%20is%20too%20big%21&amp;plugin=soc" title="MisterWong.DE"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.muti.co.za/submit?url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;title=MVC%20pattern%3A%20Controller%20is%20too%20big%21" title="muti"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/muti.png" title="muti" alt="muti" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://myshare.url.com.tw/index.php?func=newurl&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;desc=MVC%20pattern%3A%20Controller%20is%20too%20big%21" title="MyShare"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/myshare.png" title="MyShare" alt="MyShare" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;t=MVC%20pattern%3A%20Controller%20is%20too%20big%21" title="MySpace"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/myspace.png" title="MySpace" alt="MySpace" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.n4g.com/tips.aspx?url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;title=MVC%20pattern%3A%20Controller%20is%20too%20big%21" title="N4G"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/n4g.png" title="N4G" alt="N4G" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.netvibes.com/share?title=MVC%20pattern%3A%20Controller%20is%20too%20big%21&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F" title="Netvibes"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.netvouz.com/action/submitBookmark?url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;title=MVC%20pattern%3A%20Controller%20is%20too%20big%21&amp;popup=no" title="Netvouz"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/netvouz.png" title="Netvouz" alt="Netvouz" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.newsvine.com/_tools/seed&amp;save?u=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;h=MVC%20pattern%3A%20Controller%20is%20too%20big%21" title="NewsVine"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/newsvine.png" title="NewsVine" alt="NewsVine" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://nujij.nl/jij.lynkx?t=MVC%20pattern%3A%20Controller%20is%20too%20big%21&amp;u=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;b=All%20software%20engineers%20know%20the%20MVC%20pattern%20also%20it%20is%20applied%20in%20various%20projects%20from%20standalone%20to%20web%20or%20distributed%20application.%20However%2C%20while%20many%20Software%20Engineers%20have%20different%20view%20on%20Controller%20layer%20and%20many%20cases%20it%20is%20not%20managed%20well" title="NuJIJ"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/nujij.png" title="NuJIJ" alt="NuJIJ" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://ping.fm/ref/?link=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;title=MVC%20pattern%3A%20Controller%20is%20too%20big%21&amp;body=All%20software%20engineers%20know%20the%20MVC%20pattern%20also%20it%20is%20applied%20in%20various%20projects%20from%20standalone%20to%20web%20or%20distributed%20application.%20However%2C%20while%20many%20Software%20Engineers%20have%20different%20view%20on%20Controller%20layer%20and%20many%20cases%20it%20is%20not%20managed%20well" title="Ping.fm"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/ping.png" title="Ping.fm" alt="Ping.fm" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="PlugIM"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="PlugIM" alt="PlugIM" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Pownce"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Pownce" alt="Pownce" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="ppnow"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="ppnow" alt="ppnow" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;partner=sociable" title="Print"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.propeller.com/submit/?url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F" title="Propeller"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/propeller.png" title="Propeller" alt="Propeller" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://ratimarks.org/bookmarks.php/?action=add&address=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;title=MVC%20pattern%3A%20Controller%20is%20too%20big%21" title="Ratimarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/ratimarks.png" title="Ratimarks" alt="Ratimarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://rec6.via6.com/link.php?url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;=MVC%20pattern%3A%20Controller%20is%20too%20big%21" title="Rec6"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/rec6.png" title="Rec6" alt="Rec6" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;title=MVC%20pattern%3A%20Controller%20is%20too%20big%21" title="Reddit"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="SalesMarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="SalesMarks" alt="SalesMarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.scoopeo.com/scoop/new?newurl=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;title=MVC%20pattern%3A%20Controller%20is%20too%20big%21" title="Scoopeo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/scoopeo.png" title="Scoopeo" alt="Scoopeo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="scuttle"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="scuttle" alt="scuttle" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://segnalo.alice.it/post.html.php?url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;title=MVC%20pattern%3A%20Controller%20is%20too%20big%21" title="Segnalo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/segnalo.png" title="Segnalo" alt="Segnalo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Shadows"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Shadows" alt="Shadows" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.simpy.com/simpy/LinkAdd.do?href=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;title=MVC%20pattern%3A%20Controller%20is%20too%20big%21" title="Simpy"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/simpy.png" title="Simpy" alt="Simpy" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://slashdot.org/bookmark.pl?title=MVC%20pattern%3A%20Controller%20is%20too%20big%21&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F" title="Slashdot"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/slashdot.png" title="Slashdot" alt="Slashdot" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Smarking"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Smarking" alt="Smarking" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://socialogs.com/add_story.php?story_url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;story_title=MVC%20pattern%3A%20Controller%20is%20too%20big%21" title="Socialogs"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/socialogs.png" title="Socialogs" alt="Socialogs" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.sphere.com/search?q=sphereit:http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;title=MVC%20pattern%3A%20Controller%20is%20too%20big%21" title="SphereIt"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/sphere.png" title="SphereIt" alt="SphereIt" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Spurl"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Spurl" alt="Spurl" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;title=MVC%20pattern%3A%20Controller%20is%20too%20big%21" title="StumbleUpon"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Symbaloo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Symbaloo" alt="Symbaloo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Taggly"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Taggly" alt="Taggly" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TailRank"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="TailRank" alt="TailRank" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F" title="Technorati"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.thisnext.com/pick/new/submit/sociable/?url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;name=MVC%20pattern%3A%20Controller%20is%20too%20big%21" title="ThisNext"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/thisnext.png" title="ThisNext" alt="ThisNext" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://tipd.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F" title="Tipd"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/tipd.png" title="Tipd" alt="Tipd" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;t=MVC%20pattern%3A%20Controller%20is%20too%20big%21&amp;s=All%20software%20engineers%20know%20the%20MVC%20pattern%20also%20it%20is%20applied%20in%20various%20projects%20from%20standalone%20to%20web%20or%20distributed%20application.%20However%2C%20while%20many%20Software%20Engineers%20have%20different%20view%20on%20Controller%20layer%20and%20many%20cases%20it%20is%20not%20managed%20well" title="Tumblr"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/tumblr.png" title="Tumblr" alt="Tumblr" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TwitThis"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.upnews.it/submit?url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;title=MVC%20pattern%3A%20Controller%20is%20too%20big%21" title="Upnews"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/upnews.png" title="Upnews" alt="Upnews" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.webnews.de/einstellen?url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;title=MVC%20pattern%3A%20Controller%20is%20too%20big%21" title="Webnews.de"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/webnews.png" title="Webnews.de" alt="Webnews.de" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://webride.org/discuss/split.php?uri=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;title=MVC%20pattern%3A%20Controller%20is%20too%20big%21" title="Webride"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/webride.png" title="Webride" alt="Webride" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.com/vote?url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F" title="Wikio"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio" alt="Wikio" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.fr/vote?url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F" title="Wikio FR"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio FR" alt="Wikio FR" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.it/vote?url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F" title="Wikio IT"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio IT" alt="Wikio IT" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://wists.com/s.php?c=&amp;r=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;title=MVC%20pattern%3A%20Controller%20is%20too%20big%21" title="Wists"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wists.png" title="Wists" alt="Wists" class="sociable-hovers sociable_wists" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wykop.pl/dodaj?url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F" title="Wykop"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wykop.png" title="Wykop" alt="Wykop" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.xerpi.com/block/add_link_from_extension?url=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;title=MVC%20pattern%3A%20Controller%20is%20too%20big%21" title="Xerpi"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/xerpi.png" title="Xerpi" alt="Xerpi" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;submitHeadline=MVC%20pattern%3A%20Controller%20is%20too%20big%21&amp;submitSummary=All%20software%20engineers%20know%20the%20MVC%20pattern%20also%20it%20is%20applied%20in%20various%20projects%20from%20standalone%20to%20web%20or%20distributed%20application.%20However%2C%20while%20many%20Software%20Engineers%20have%20different%20view%20on%20Controller%20layer%20and%20many%20cases%20it%20is%20not%20managed%20well&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="YahooMyWeb"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="YahooMyWeb" alt="YahooMyWeb" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://yigg.de/neu?exturl=http%3A%2F%2Fblog.esofthead.com%2Fmvc-pattern-controller-is-too-big%2F&amp;exttitle=MVC%20pattern%3A%20Controller%20is%20too%20big%21" title="Yigg"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/yiggit.png" title="Yigg" alt="Yigg" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://blog.esofthead.com/mvc-pattern-controller-is-too-big/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Validation with Bean Validation Framework</title>
		<link>http://blog.esofthead.com/53/</link>
		<comments>http://blog.esofthead.com/53/#comments</comments>
		<pubDate>Fri, 04 May 2007 01:34:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Object Oriented and Design]]></category>

		<guid isPermaLink="false">http://blog.esofthead.com/?p=53</guid>
		<description><![CDATA[Spring framework provide the nice approach of validation that separate with the main business with validation. There are 3 ways of validation supported by Spring framework, they are: Common Validator, Valang (Va-lidation Lang-uage) Validator and Bean Framework Validator. According to me, Bean Framework Validator is the best among these approaches because it is more flexible, [...]]]></description>
			<content:encoded><![CDATA[<p class="first-child "><span title="S" class="cap"><span>S</span></span>pring framework provide the nice approach of validation that separate with the main business with validation. There are 3 ways of validation supported by Spring framework, they are: Common Validator, Valang (<em>Va</em>-lidation <em>Lang</em>-uage) Validator and Bean Framework Validator. According to me, Bean Framework Validator is the best among these approaches because it is more flexible, more powerful (support more types of validation Domain Model Constraints, Business Rules and Application Constraints besides Data Constraints). Bean Validation Framework provide the way to enhance its capacity, however you rarely need to enhance because it provides enough data constraint validation in almost cases. Compare with Hibernate Annotation, Bean Framework Validation also gain my vote per its advantages. One more reason that I choose Bean Validation Framework in my project that it supports XML declaration instead using annotations (though it support annotation too) because my beans are generated automatically and the Netbeans can not know to data constraint base on database schema.<span id="more-53"></span></p>
<p>Using Bean Validation Framework is rather easy, you declare the validation in spring context file and that is. Here is the sample of my context file:</p>
<p>&lt;bean id="registerUserValidator" class="org.springmodules.validation.bean.BeanValidator"&gt;<br />
&lt;property name="configurationLoader" ref="configurationLoader"/&gt;<br />
&lt;/bean&gt;<br />
&lt;bean id="configurationLoader" class="org.springmodules.validation.bean.conf.loader.xml.DefaultXmlBeanValidationConfigurationLoader"&gt;<br />
&lt;property name="resource" value="classpath:beanValidation/userDTOValidation.xml"/&gt;<br />
&lt;/bean&gt;<br />
&lt;bean id="registerForm"<br />
class="ows.security.controller.RegisterUserController"&gt;<br />
&lt;property name="sessionForm" value="true" /&gt;<br />
&lt;property name="commandName" value="userDTO" /&gt;<br />
&lt;property name="commandClass"<br />
value="ows.security.admin.domain.UserDTO" /&gt;<br />
&lt;property name="validator" ref="registerUserValidator"/&gt; &lt;!--Register the validator to Controller--&gt;<br />
&lt;property name="formView" value="admin/registration" /&gt;<br />
&lt;property name="successView" value="../index.jsp" /&gt;<br />
&lt;property name="userService" ref="userService"/&gt;<br />
&lt;/bean&gt;</p>
<p>Note that the bean name configurationLoader has resource property that makes you define the validation file for bean, in my case I put it in the folder beanValidation under classpath property. Here is the content of userDTOValidation.xml</p>
<p>&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;<br />
&lt;validation xmlns="<a href="http://www.springmodules.org/validation/bean">http://www.springmodules.org/validation/bean</a>"<br />
xmlns:xsi="<a href="http://www.w3.org/2001/XMLSchema-instance">http://www.w3.org/2001/XMLSchema-instance</a>"<br />
xsi:schemaLocation="<a href="http://www.springmodules.org/validation/bean">http://www.springmodules.org/validation/bean</a><br />
<a href="http://www.springmodules.org/validation/bean/validation.xsd">http://www.springmodules.org/validation/bean/validation.xsd</a>"&gt;<br />
&lt;class name="ows.security.admin.domain.UserDTO"&gt;<br />
&lt;validator class="ows.security.validator.UserValidator" /&gt; &lt;!--I can check the application and business constraints in this class while rely data constraint validation for spring framework-&gt;<br />
&lt;global&gt;<br />
&lt;!-- global validation rules go here --&gt;<br />
&lt;/global&gt;</p>
<p>&lt;property name="firstname"&gt;<br />
&lt;not-blank message="First name can not be blank"/&gt;<br />
&lt;length min="1" max="20"/&gt;<br />
&lt;/property&gt;<br />
&lt;property name="lastname"&gt;<br />
&lt;not-blank message="Last name can not be blank"/&gt;<br />
&lt;length min="1" max="20"/&gt;<br />
&lt;/property&gt;<br />
&lt;property name="email"&gt;<br />
&lt;email message="Email is invalid"/&gt;<br />
&lt;/property&gt;<br />
&lt;property name="password"&gt;<br />
&lt;length min="6" max="20" message="Password length must be in range [6..20]"/&gt;<br />
&lt;/property&gt;<br />
&lt;property name="username"&gt;<br />
&lt;length min="3" max="20" message="User name length must be in range [3..20]"/&gt;<br />
&lt;/property&gt;<br />
&lt;/class&gt;<br />
&lt;/validation&gt;</p>
<p>Remember you installed the spring modules before, and it is the only one reminder to use this nice framework <img src='http://blog.esofthead.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><a class="a2a_dd" onmouseover="a2a_show_dropdown(this)" onmouseout="a2a_onMouseOut_delay()" href="http://www.addtoany.com/subscribe?linkname=eSoftHead%20Blog%20Feed&amp;linkurl=http%3A%2F%2Fblog.esofthead.com%2F%3Ffeed%3Drss2"><img src="http://static.addtoany.com/buttons/subscribe_120_16.gif" width="120" height="16" border="0" alt="Subscribe"/></a><script type="text/javascript">a2a_linkname="eSoftHead Blog Feed";a2a_linkurl="http://blog.esofthead.com/?feed=rss2";</script><script type="text/javascript" src="http://static.addtoany.com/menu/feed.js"></script></p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;title=Validation%20with%20Bean%20Validation%20Framework&amp;bodytext=Spring%20framework%20provide%20the%20nice%20approach%20of%20validation%20that%20separate%20with%20the%20main%20business%20with%20validation.%20There%20are%203%20ways%20of%20validation%20supported%20by%20Spring%20framework%2C%20they%20are%3A%20Common%20Validator%2C%20Valang%20%28Va-lidation%20Lang-uage%29%20Validator%20and%20Bean" title="Digg"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fblog.esofthead.com%2F53%2F" title="Sphinn"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;title=Validation%20with%20Bean%20Validation%20Framework&amp;notes=Spring%20framework%20provide%20the%20nice%20approach%20of%20validation%20that%20separate%20with%20the%20main%20business%20with%20validation.%20There%20are%203%20ways%20of%20validation%20supported%20by%20Spring%20framework%2C%20they%20are%3A%20Common%20Validator%2C%20Valang%20%28Va-lidation%20Lang-uage%29%20Validator%20and%20Bean" title="del.icio.us"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;t=Validation%20with%20Bean%20Validation%20Framework" title="Facebook"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;title=Validation%20with%20Bean%20Validation%20Framework" title="Mixx"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;title=Validation%20with%20Bean%20Validation%20Framework&amp;annotation=Spring%20framework%20provide%20the%20nice%20approach%20of%20validation%20that%20separate%20with%20the%20main%20business%20with%20validation.%20There%20are%203%20ways%20of%20validation%20supported%20by%20Spring%20framework%2C%20they%20are%3A%20Common%20Validator%2C%20Valang%20%28Va-lidation%20Lang-uage%29%20Validator%20and%20Bean" title="Google Bookmarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://barrapunto.com/submit.pl?subj=Validation%20with%20Bean%20Validation%20Framework&amp;story=http%3A%2F%2Fblog.esofthead.com%2F53%2F" title="BarraPunto"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/barrapunto.png" title="BarraPunto" alt="BarraPunto" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://bitacoras.com/anotaciones/http%3A%2F%2Fblog.esofthead.com%2F53%2F" title="Bitacoras.com"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/bitacoras.png" title="Bitacoras.com" alt="Bitacoras.com" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="blinkbits"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="blinkbits" alt="blinkbits" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;Title=Validation%20with%20Bean%20Validation%20Framework" title="BlinkList"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blinklist.png" title="BlinkList" alt="BlinkList" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;title=Validation%20with%20Bean%20Validation%20Framework" title="blogmarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blogmarks.png" title="blogmarks" alt="blogmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes" alt="BlogMemes" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Cn"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Cn" alt="BlogMemes Cn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Fr"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Fr" alt="BlogMemes Fr" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Jp"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Jp" alt="BlogMemes Jp" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Sp"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Sp" alt="BlogMemes Sp" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.blogospherenews.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;title=Validation%20with%20Bean%20Validation%20Framework" title="Blogosphere News"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blogospherenews.png" title="Blogosphere News" alt="Blogosphere News" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Blogsvine"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Blogsvine" alt="Blogsvine" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://cimlap.blogter.hu/index.php?action=suggest_link&amp;title=Validation%20with%20Bean%20Validation%20Framework&amp;url=http%3A%2F%2Fblog.esofthead.com%2F53%2F" title="blogtercimlap"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blogter.png" title="blogtercimlap" alt="blogtercimlap" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Book.mark.hu"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Book.mark.hu" alt="Book.mark.hu" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Bumpzee"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Bumpzee" alt="Bumpzee" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="co.mments"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="co.mments" alt="co.mments" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.connotea.org/addpopup?continue=confirm&amp;uri=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;title=Validation%20with%20Bean%20Validation%20Framework&amp;description=Spring%20framework%20provide%20the%20nice%20approach%20of%20validation%20that%20separate%20with%20the%20main%20business%20with%20validation.%20There%20are%203%20ways%20of%20validation%20supported%20by%20Spring%20framework%2C%20they%20are%3A%20Common%20Validator%2C%20Valang%20%28Va-lidation%20Lang-uage%29%20Validator%20and%20Bean" title="connotea"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/connotea.png" title="connotea" alt="connotea" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="De.lirio.us"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="De.lirio.us" alt="De.lirio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.designfloat.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;title=Validation%20with%20Bean%20Validation%20Framework" title="Design Float"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/designfloat.png" title="Design Float" alt="Design Float" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;title=Validation%20with%20Bean%20Validation%20Framework" title="DotNetKicks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/dotnetkicks.png" title="DotNetKicks" alt="DotNetKicks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;title=Validation%20with%20Bean%20Validation%20Framework" title="DZone"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.ekudos.nl/artikel/nieuw?url=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;title=Validation%20with%20Bean%20Validation%20Framework&amp;desc=Spring%20framework%20provide%20the%20nice%20approach%20of%20validation%20that%20separate%20with%20the%20main%20business%20with%20validation.%20There%20are%203%20ways%20of%20validation%20supported%20by%20Spring%20framework%2C%20they%20are%3A%20Common%20Validator%2C%20Valang%20%28Va-lidation%20Lang-uage%29%20Validator%20and%20Bean" title="eKudos"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/ekudos.png" title="eKudos" alt="eKudos" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="mailto:?subject=Validation%20with%20Bean%20Validation%20Framework&amp;body=http%3A%2F%2Fblog.esofthead.com%2F53%2F" title="email"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://cgi.fark.com/cgi/fark/farkit.pl?h=Validation%20with%20Bean%20Validation%20Framework&amp;u=http%3A%2F%2Fblog.esofthead.com%2F53%2F" title="Fark"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/fark.png" title="Fark" alt="Fark" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://faves.com/Authoring.aspx?u=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;title=Validation%20with%20Bean%20Validation%20Framework" title="Faves"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/bluedot.png" title="Faves" alt="Faves" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="feedmelinks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="feedmelinks" alt="feedmelinks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://beta3.fleck.com/bookmarklet.php?url=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;title=Validation%20with%20Bean%20Validation%20Framework" title="Fleck"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/fleck.png" title="Fleck" alt="Fleck" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Furl"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Furl" alt="Furl" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="GeenRedactie"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="GeenRedactie" alt="GeenRedactie" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://globalgrind.com/submission/submit.aspx?url=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;type=Article&amp;title=Validation%20with%20Bean%20Validation%20Framework" title="Global Grind"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/globalgrind.png" title="Global Grind" alt="Global Grind" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.gwar.pl/DodajGwar.html?u=http%3A%2F%2Fblog.esofthead.com%2F53%2F" title="Gwar"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/gwar.png" title="Gwar" alt="Gwar" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.haohaoreport.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;title=Validation%20with%20Bean%20Validation%20Framework" title="Haohao"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/haohao.png" title="Haohao" alt="Haohao" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://healthranker.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;title=Validation%20with%20Bean%20Validation%20Framework" title="HealthRanker"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/healthranker.png" title="HealthRanker" alt="HealthRanker" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.hemidemi.com/user_bookmark/new?title=Validation%20with%20Bean%20Validation%20Framework&amp;url=http%3A%2F%2Fblog.esofthead.com%2F53%2F" title="Hemidemi"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/hemidemi.png" title="Hemidemi" alt="Hemidemi" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://identi.ca/notice/new?status_textarea=http%3A%2F%2Fblog.esofthead.com%2F53%2F" title="Identi.ca"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/identica.png" title="Identi.ca" alt="Identi.ca" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.indianpad.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2F53%2F" title="IndianPad"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/indianpad.png" title="IndianPad" alt="IndianPad" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://internetmedia.hu/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2F53%2F" title="Internetmedia"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/im.png" title="Internetmedia" alt="Internetmedia" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="kick.ie"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="kick.ie" alt="kick.ie" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.kirtsy.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;title=Validation%20with%20Bean%20Validation%20Framework" title="Kirtsy"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/kirtsy.png" title="Kirtsy" alt="Kirtsy" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://laaik.it/NewStoryCompact.aspx?uri=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;headline=Validation%20with%20Bean%20Validation%20Framework&amp;cat=5e082fcc-8a3b-47e2-acec-fdf64ff19d12" title="laaik.it"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/laaikit.png" title="laaik.it" alt="laaik.it" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Leonaut"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Leonaut" alt="Leonaut" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkagogo.com/go/AddNoPopup?url=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;title=Validation%20with%20Bean%20Validation%20Framework" title="LinkaGoGo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkagogo.png" title="LinkaGoGo" alt="LinkaGoGo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://linkarena.com/bookmarks/addlink/?url=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;title=Validation%20with%20Bean%20Validation%20Framework" title="LinkArena"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkarena.png" title="LinkArena" alt="LinkArena" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;title=Validation%20with%20Bean%20Validation%20Framework&amp;source=eSoftHead%2C+a+Vietnam+Software+Outsourcing+Company+The+official+blog+of+eSoftHead+Company&amp;summary=Spring%20framework%20provide%20the%20nice%20approach%20of%20validation%20that%20separate%20with%20the%20main%20business%20with%20validation.%20There%20are%203%20ways%20of%20validation%20supported%20by%20Spring%20framework%2C%20they%20are%3A%20Common%20Validator%2C%20Valang%20%28Va-lidation%20Lang-uage%29%20Validator%20and%20Bean" title="LinkedIn"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkter.hu/index.php?action=suggest_link&amp;url=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;title=Validation%20with%20Bean%20Validation%20Framework" title="Linkter"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkter.png" title="Linkter" alt="Linkter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;title=Validation%20with%20Bean%20Validation%20Framework" title="Live"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Ma.gnolia"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Ma.gnolia" alt="Ma.gnolia" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://meneame.net/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2F53%2F" title="Meneame"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/meneame.png" title="Meneame" alt="Meneame" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mister-wong.com/addurl/?bm_url=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;bm_description=Validation%20with%20Bean%20Validation%20Framework&amp;plugin=soc" title="MisterWong"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong" alt="MisterWong" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;bm_description=Validation%20with%20Bean%20Validation%20Framework&amp;plugin=soc" title="MisterWong.DE"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.muti.co.za/submit?url=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;title=Validation%20with%20Bean%20Validation%20Framework" title="muti"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/muti.png" title="muti" alt="muti" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://myshare.url.com.tw/index.php?func=newurl&amp;url=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;desc=Validation%20with%20Bean%20Validation%20Framework" title="MyShare"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/myshare.png" title="MyShare" alt="MyShare" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;t=Validation%20with%20Bean%20Validation%20Framework" title="MySpace"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/myspace.png" title="MySpace" alt="MySpace" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.n4g.com/tips.aspx?url=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;title=Validation%20with%20Bean%20Validation%20Framework" title="N4G"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/n4g.png" title="N4G" alt="N4G" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.netvibes.com/share?title=Validation%20with%20Bean%20Validation%20Framework&amp;url=http%3A%2F%2Fblog.esofthead.com%2F53%2F" title="Netvibes"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.netvouz.com/action/submitBookmark?url=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;title=Validation%20with%20Bean%20Validation%20Framework&amp;popup=no" title="Netvouz"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/netvouz.png" title="Netvouz" alt="Netvouz" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.newsvine.com/_tools/seed&amp;save?u=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;h=Validation%20with%20Bean%20Validation%20Framework" title="NewsVine"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/newsvine.png" title="NewsVine" alt="NewsVine" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://nujij.nl/jij.lynkx?t=Validation%20with%20Bean%20Validation%20Framework&amp;u=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;b=Spring%20framework%20provide%20the%20nice%20approach%20of%20validation%20that%20separate%20with%20the%20main%20business%20with%20validation.%20There%20are%203%20ways%20of%20validation%20supported%20by%20Spring%20framework%2C%20they%20are%3A%20Common%20Validator%2C%20Valang%20%28Va-lidation%20Lang-uage%29%20Validator%20and%20Bean" title="NuJIJ"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/nujij.png" title="NuJIJ" alt="NuJIJ" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://ping.fm/ref/?link=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;title=Validation%20with%20Bean%20Validation%20Framework&amp;body=Spring%20framework%20provide%20the%20nice%20approach%20of%20validation%20that%20separate%20with%20the%20main%20business%20with%20validation.%20There%20are%203%20ways%20of%20validation%20supported%20by%20Spring%20framework%2C%20they%20are%3A%20Common%20Validator%2C%20Valang%20%28Va-lidation%20Lang-uage%29%20Validator%20and%20Bean" title="Ping.fm"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/ping.png" title="Ping.fm" alt="Ping.fm" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="PlugIM"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="PlugIM" alt="PlugIM" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Pownce"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Pownce" alt="Pownce" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="ppnow"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="ppnow" alt="ppnow" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;partner=sociable" title="Print"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.propeller.com/submit/?url=http%3A%2F%2Fblog.esofthead.com%2F53%2F" title="Propeller"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/propeller.png" title="Propeller" alt="Propeller" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://ratimarks.org/bookmarks.php/?action=add&address=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;title=Validation%20with%20Bean%20Validation%20Framework" title="Ratimarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/ratimarks.png" title="Ratimarks" alt="Ratimarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://rec6.via6.com/link.php?url=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;=Validation%20with%20Bean%20Validation%20Framework" title="Rec6"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/rec6.png" title="Rec6" alt="Rec6" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;title=Validation%20with%20Bean%20Validation%20Framework" title="Reddit"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="SalesMarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="SalesMarks" alt="SalesMarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.scoopeo.com/scoop/new?newurl=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;title=Validation%20with%20Bean%20Validation%20Framework" title="Scoopeo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/scoopeo.png" title="Scoopeo" alt="Scoopeo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="scuttle"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="scuttle" alt="scuttle" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://segnalo.alice.it/post.html.php?url=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;title=Validation%20with%20Bean%20Validation%20Framework" title="Segnalo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/segnalo.png" title="Segnalo" alt="Segnalo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Shadows"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Shadows" alt="Shadows" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.simpy.com/simpy/LinkAdd.do?href=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;title=Validation%20with%20Bean%20Validation%20Framework" title="Simpy"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/simpy.png" title="Simpy" alt="Simpy" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://slashdot.org/bookmark.pl?title=Validation%20with%20Bean%20Validation%20Framework&amp;url=http%3A%2F%2Fblog.esofthead.com%2F53%2F" title="Slashdot"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/slashdot.png" title="Slashdot" alt="Slashdot" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Smarking"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Smarking" alt="Smarking" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://socialogs.com/add_story.php?story_url=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;story_title=Validation%20with%20Bean%20Validation%20Framework" title="Socialogs"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/socialogs.png" title="Socialogs" alt="Socialogs" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.sphere.com/search?q=sphereit:http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;title=Validation%20with%20Bean%20Validation%20Framework" title="SphereIt"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/sphere.png" title="SphereIt" alt="SphereIt" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Spurl"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Spurl" alt="Spurl" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;title=Validation%20with%20Bean%20Validation%20Framework" title="StumbleUpon"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Symbaloo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Symbaloo" alt="Symbaloo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Taggly"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Taggly" alt="Taggly" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TailRank"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="TailRank" alt="TailRank" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fblog.esofthead.com%2F53%2F" title="Technorati"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.thisnext.com/pick/new/submit/sociable/?url=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;name=Validation%20with%20Bean%20Validation%20Framework" title="ThisNext"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/thisnext.png" title="ThisNext" alt="ThisNext" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://tipd.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2F53%2F" title="Tipd"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/tipd.png" title="Tipd" alt="Tipd" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;t=Validation%20with%20Bean%20Validation%20Framework&amp;s=Spring%20framework%20provide%20the%20nice%20approach%20of%20validation%20that%20separate%20with%20the%20main%20business%20with%20validation.%20There%20are%203%20ways%20of%20validation%20supported%20by%20Spring%20framework%2C%20they%20are%3A%20Common%20Validator%2C%20Valang%20%28Va-lidation%20Lang-uage%29%20Validator%20and%20Bean" title="Tumblr"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/tumblr.png" title="Tumblr" alt="Tumblr" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TwitThis"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.upnews.it/submit?url=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;title=Validation%20with%20Bean%20Validation%20Framework" title="Upnews"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/upnews.png" title="Upnews" alt="Upnews" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.webnews.de/einstellen?url=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;title=Validation%20with%20Bean%20Validation%20Framework" title="Webnews.de"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/webnews.png" title="Webnews.de" alt="Webnews.de" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://webride.org/discuss/split.php?uri=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;title=Validation%20with%20Bean%20Validation%20Framework" title="Webride"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/webride.png" title="Webride" alt="Webride" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.com/vote?url=http%3A%2F%2Fblog.esofthead.com%2F53%2F" title="Wikio"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio" alt="Wikio" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.fr/vote?url=http%3A%2F%2Fblog.esofthead.com%2F53%2F" title="Wikio FR"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio FR" alt="Wikio FR" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.it/vote?url=http%3A%2F%2Fblog.esofthead.com%2F53%2F" title="Wikio IT"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio IT" alt="Wikio IT" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://wists.com/s.php?c=&amp;r=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;title=Validation%20with%20Bean%20Validation%20Framework" title="Wists"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wists.png" title="Wists" alt="Wists" class="sociable-hovers sociable_wists" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wykop.pl/dodaj?url=http%3A%2F%2Fblog.esofthead.com%2F53%2F" title="Wykop"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wykop.png" title="Wykop" alt="Wykop" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.xerpi.com/block/add_link_from_extension?url=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;title=Validation%20with%20Bean%20Validation%20Framework" title="Xerpi"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/xerpi.png" title="Xerpi" alt="Xerpi" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;submitHeadline=Validation%20with%20Bean%20Validation%20Framework&amp;submitSummary=Spring%20framework%20provide%20the%20nice%20approach%20of%20validation%20that%20separate%20with%20the%20main%20business%20with%20validation.%20There%20are%203%20ways%20of%20validation%20supported%20by%20Spring%20framework%2C%20they%20are%3A%20Common%20Validator%2C%20Valang%20%28Va-lidation%20Lang-uage%29%20Validator%20and%20Bean&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="YahooMyWeb"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="YahooMyWeb" alt="YahooMyWeb" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://yigg.de/neu?exturl=http%3A%2F%2Fblog.esofthead.com%2F53%2F&amp;exttitle=Validation%20with%20Bean%20Validation%20Framework" title="Yigg"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/yiggit.png" title="Yigg" alt="Yigg" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://blog.esofthead.com/53/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OO design principles</title>
		<link>http://blog.esofthead.com/oo-design-principles/</link>
		<comments>http://blog.esofthead.com/oo-design-principles/#comments</comments>
		<pubDate>Fri, 19 Jan 2007 18:37:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Object Oriented and Design]]></category>
		<category><![CDATA[Software Engineer]]></category>

		<guid isPermaLink="false">http://blog.esofthead.com/?p=15</guid>
		<description><![CDATA[For any evaluation of architecture, the natural question is raised whether the architecture is good and the common criteria to assess this quality is not common for all reviewers. You can have some:
- It seems that the coding standard are not followed well –&#62; Wrong assessment due to quality of design is not related to [...]]]></description>
			<content:encoded><![CDATA[<p class="first-child "><span title="F" class="cap"><span>F</span></span>or any evaluation of architecture, the natural question is raised whether the architecture is good and the common criteria to assess this quality is not common for all reviewers.<span id="more-15"></span><img class="mce_plugin_wordpress_more" title="More..." src="http://www.haiphucnguyen.net/blog/wp-includes/js/tinymce/themes/advanced/images/spacer.gif" alt="More..." width="100%" height="10" /> You can have some:</p>
<blockquote><p>- It <strong>seems</strong> that the coding standard are not followed well –&gt; Wrong assessment due to quality of design is not related to coding standard.</p></blockquote>
<blockquote><p>- The performance of system is great –&gt; The performance result is not the main factor of evaluating system performance, of course the bad quality can cause the impact to system performance.</p></blockquote>
<blockquote><p>- The architecture is designed very complicated and it is created by a “guru” guy –&gt; the complicated is the signal of bad design, we have no design for prediction purpose and the fame of some one is not the main factor to decide the quality of design.</p></blockquote>
<blockquote><p>- The architecture applies many well-known pattern in practices –&gt; You know that the patterns are applied correctly depends on the context of business scenario. No one pattern is right for all cases.</p></blockquote>
<p>Well, after reading my arguments, you will ask me what are the criteria to assess the quality of architecture. I just can say <strong>“The architecture is designed with high quality if they are followed object oriented design principles”. </strong>Pattern is described is GoF books or any ones must be follow the design principles/practices. Any violate can cause the quality of design becomes bad. Here are the design principles that are described detail on <a href="http://www.objectmentor.com/">Object Mentor</a></p>
<ol>
<li><strong>The Open/Closed Principle</strong>: Software entities (classes, modules, etc)    should be open for extension, but closed for modification.</li>
<li><strong>The Liskov Substitution Principle</strong>: Derived classes must be usable    through the base class interface without the need for the user to    know the difference.</li>
<li><strong>The Dependency Inversion Principle</strong>: Details should depend upon    abstractions.  Abstractions should not depend upon details.</li>
<li><strong>The Interface Segregation Principle</strong>: Many client specific interfaces    are better than one general purpose interface/</li>
<li><strong>The Reuse/Release Equivalency Principle</strong>: The granule of reuse is the same as the granule of release. Only components that are released through a tracking system can be effectively reused.</li>
<li><strong>The Common Closure Principle</strong>: Classes that change together, belong    together.</li>
<li><strong>The Common Reuse Principle</strong>: CClasses that aren’t reused together    should not be grouped together.</li>
<li><strong>The Acyclic Dependencies Principle</strong>: The dependency structure for    released components must be a directed acyclic graph. There can be    no cycles.</li>
<li><strong>The Stable Dependencies Principle</strong>: Dependencies between released categories must run in the direction of stability. The dependee must be more stable than the depender.</li>
<li><strong>The Stable Abstractions Principle</strong>: The more stable a class category is, the more it must consist of abstract classes. A completely stable category should consist of nothing but abstract classes.</li>
</ol>
<p><a class="a2a_dd" onmouseover="a2a_show_dropdown(this)" onmouseout="a2a_onMouseOut_delay()" href="http://www.addtoany.com/subscribe?linkname=eSoftHead%20Blog%20Feed&amp;linkurl=http%3A%2F%2Fblog.esofthead.com%2F%3Ffeed%3Drss2"><img src="http://static.addtoany.com/buttons/subscribe_120_16.gif" border="0" alt="Subscribe" width="120" height="16" /></a><script type="text/javascript"><!--
a2a_linkname="eSoftHead Blog Feed";a2a_linkurl="http://blog.esofthead.com/?feed=rss2";
// --></script><script src="http://static.addtoany.com/menu/feed.js" type="text/javascript"></script></p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;title=OO%20design%20principles&amp;bodytext=For%20any%20evaluation%20of%20architecture%2C%20the%20natural%20question%20is%20raised%20whether%20the%20architecture%20is%20good%20and%20the%20common%20criteria%20to%20assess%20this%20quality%20is%20not%20common%20for%20all%20reviewers.%20You%20can%20have%20some%3A%0D%0A-%20It%20seems%20that%20the%20coding%20standard%20are%20not%20follow" title="Digg"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F" title="Sphinn"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;title=OO%20design%20principles&amp;notes=For%20any%20evaluation%20of%20architecture%2C%20the%20natural%20question%20is%20raised%20whether%20the%20architecture%20is%20good%20and%20the%20common%20criteria%20to%20assess%20this%20quality%20is%20not%20common%20for%20all%20reviewers.%20You%20can%20have%20some%3A%0D%0A-%20It%20seems%20that%20the%20coding%20standard%20are%20not%20follow" title="del.icio.us"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;t=OO%20design%20principles" title="Facebook"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;title=OO%20design%20principles" title="Mixx"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;title=OO%20design%20principles&amp;annotation=For%20any%20evaluation%20of%20architecture%2C%20the%20natural%20question%20is%20raised%20whether%20the%20architecture%20is%20good%20and%20the%20common%20criteria%20to%20assess%20this%20quality%20is%20not%20common%20for%20all%20reviewers.%20You%20can%20have%20some%3A%0D%0A-%20It%20seems%20that%20the%20coding%20standard%20are%20not%20follow" title="Google Bookmarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://barrapunto.com/submit.pl?subj=OO%20design%20principles&amp;story=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F" title="BarraPunto"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/barrapunto.png" title="BarraPunto" alt="BarraPunto" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://bitacoras.com/anotaciones/http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F" title="Bitacoras.com"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/bitacoras.png" title="Bitacoras.com" alt="Bitacoras.com" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="blinkbits"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="blinkbits" alt="blinkbits" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;Title=OO%20design%20principles" title="BlinkList"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blinklist.png" title="BlinkList" alt="BlinkList" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;title=OO%20design%20principles" title="blogmarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blogmarks.png" title="blogmarks" alt="blogmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes" alt="BlogMemes" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Cn"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Cn" alt="BlogMemes Cn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Fr"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Fr" alt="BlogMemes Fr" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Jp"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Jp" alt="BlogMemes Jp" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Sp"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Sp" alt="BlogMemes Sp" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.blogospherenews.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;title=OO%20design%20principles" title="Blogosphere News"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blogospherenews.png" title="Blogosphere News" alt="Blogosphere News" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Blogsvine"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Blogsvine" alt="Blogsvine" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://cimlap.blogter.hu/index.php?action=suggest_link&amp;title=OO%20design%20principles&amp;url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F" title="blogtercimlap"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blogter.png" title="blogtercimlap" alt="blogtercimlap" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Book.mark.hu"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Book.mark.hu" alt="Book.mark.hu" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Bumpzee"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Bumpzee" alt="Bumpzee" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="co.mments"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="co.mments" alt="co.mments" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.connotea.org/addpopup?continue=confirm&amp;uri=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;title=OO%20design%20principles&amp;description=For%20any%20evaluation%20of%20architecture%2C%20the%20natural%20question%20is%20raised%20whether%20the%20architecture%20is%20good%20and%20the%20common%20criteria%20to%20assess%20this%20quality%20is%20not%20common%20for%20all%20reviewers.%20You%20can%20have%20some%3A%0D%0A-%20It%20seems%20that%20the%20coding%20standard%20are%20not%20follow" title="connotea"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/connotea.png" title="connotea" alt="connotea" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="De.lirio.us"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="De.lirio.us" alt="De.lirio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.designfloat.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;title=OO%20design%20principles" title="Design Float"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/designfloat.png" title="Design Float" alt="Design Float" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;title=OO%20design%20principles" title="DotNetKicks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/dotnetkicks.png" title="DotNetKicks" alt="DotNetKicks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;title=OO%20design%20principles" title="DZone"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.ekudos.nl/artikel/nieuw?url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;title=OO%20design%20principles&amp;desc=For%20any%20evaluation%20of%20architecture%2C%20the%20natural%20question%20is%20raised%20whether%20the%20architecture%20is%20good%20and%20the%20common%20criteria%20to%20assess%20this%20quality%20is%20not%20common%20for%20all%20reviewers.%20You%20can%20have%20some%3A%0D%0A-%20It%20seems%20that%20the%20coding%20standard%20are%20not%20follow" title="eKudos"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/ekudos.png" title="eKudos" alt="eKudos" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="mailto:?subject=OO%20design%20principles&amp;body=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F" title="email"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://cgi.fark.com/cgi/fark/farkit.pl?h=OO%20design%20principles&amp;u=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F" title="Fark"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/fark.png" title="Fark" alt="Fark" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://faves.com/Authoring.aspx?u=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;title=OO%20design%20principles" title="Faves"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/bluedot.png" title="Faves" alt="Faves" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="feedmelinks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="feedmelinks" alt="feedmelinks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://beta3.fleck.com/bookmarklet.php?url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;title=OO%20design%20principles" title="Fleck"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/fleck.png" title="Fleck" alt="Fleck" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Furl"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Furl" alt="Furl" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="GeenRedactie"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="GeenRedactie" alt="GeenRedactie" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://globalgrind.com/submission/submit.aspx?url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;type=Article&amp;title=OO%20design%20principles" title="Global Grind"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/globalgrind.png" title="Global Grind" alt="Global Grind" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.gwar.pl/DodajGwar.html?u=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F" title="Gwar"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/gwar.png" title="Gwar" alt="Gwar" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.haohaoreport.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;title=OO%20design%20principles" title="Haohao"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/haohao.png" title="Haohao" alt="Haohao" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://healthranker.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;title=OO%20design%20principles" title="HealthRanker"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/healthranker.png" title="HealthRanker" alt="HealthRanker" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.hemidemi.com/user_bookmark/new?title=OO%20design%20principles&amp;url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F" title="Hemidemi"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/hemidemi.png" title="Hemidemi" alt="Hemidemi" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://identi.ca/notice/new?status_textarea=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F" title="Identi.ca"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/identica.png" title="Identi.ca" alt="Identi.ca" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.indianpad.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F" title="IndianPad"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/indianpad.png" title="IndianPad" alt="IndianPad" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://internetmedia.hu/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F" title="Internetmedia"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/im.png" title="Internetmedia" alt="Internetmedia" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="kick.ie"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="kick.ie" alt="kick.ie" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.kirtsy.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;title=OO%20design%20principles" title="Kirtsy"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/kirtsy.png" title="Kirtsy" alt="Kirtsy" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://laaik.it/NewStoryCompact.aspx?uri=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;headline=OO%20design%20principles&amp;cat=5e082fcc-8a3b-47e2-acec-fdf64ff19d12" title="laaik.it"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/laaikit.png" title="laaik.it" alt="laaik.it" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Leonaut"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Leonaut" alt="Leonaut" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkagogo.com/go/AddNoPopup?url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;title=OO%20design%20principles" title="LinkaGoGo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkagogo.png" title="LinkaGoGo" alt="LinkaGoGo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://linkarena.com/bookmarks/addlink/?url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;title=OO%20design%20principles" title="LinkArena"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkarena.png" title="LinkArena" alt="LinkArena" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;title=OO%20design%20principles&amp;source=eSoftHead%2C+a+Vietnam+Software+Outsourcing+Company+The+official+blog+of+eSoftHead+Company&amp;summary=For%20any%20evaluation%20of%20architecture%2C%20the%20natural%20question%20is%20raised%20whether%20the%20architecture%20is%20good%20and%20the%20common%20criteria%20to%20assess%20this%20quality%20is%20not%20common%20for%20all%20reviewers.%20You%20can%20have%20some%3A%0D%0A-%20It%20seems%20that%20the%20coding%20standard%20are%20not%20follow" title="LinkedIn"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkter.hu/index.php?action=suggest_link&amp;url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;title=OO%20design%20principles" title="Linkter"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkter.png" title="Linkter" alt="Linkter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;title=OO%20design%20principles" title="Live"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Ma.gnolia"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Ma.gnolia" alt="Ma.gnolia" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://meneame.net/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F" title="Meneame"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/meneame.png" title="Meneame" alt="Meneame" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mister-wong.com/addurl/?bm_url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;bm_description=OO%20design%20principles&amp;plugin=soc" title="MisterWong"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong" alt="MisterWong" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;bm_description=OO%20design%20principles&amp;plugin=soc" title="MisterWong.DE"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.muti.co.za/submit?url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;title=OO%20design%20principles" title="muti"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/muti.png" title="muti" alt="muti" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://myshare.url.com.tw/index.php?func=newurl&amp;url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;desc=OO%20design%20principles" title="MyShare"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/myshare.png" title="MyShare" alt="MyShare" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;t=OO%20design%20principles" title="MySpace"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/myspace.png" title="MySpace" alt="MySpace" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.n4g.com/tips.aspx?url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;title=OO%20design%20principles" title="N4G"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/n4g.png" title="N4G" alt="N4G" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.netvibes.com/share?title=OO%20design%20principles&amp;url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F" title="Netvibes"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.netvouz.com/action/submitBookmark?url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;title=OO%20design%20principles&amp;popup=no" title="Netvouz"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/netvouz.png" title="Netvouz" alt="Netvouz" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.newsvine.com/_tools/seed&amp;save?u=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;h=OO%20design%20principles" title="NewsVine"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/newsvine.png" title="NewsVine" alt="NewsVine" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://nujij.nl/jij.lynkx?t=OO%20design%20principles&amp;u=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;b=For%20any%20evaluation%20of%20architecture%2C%20the%20natural%20question%20is%20raised%20whether%20the%20architecture%20is%20good%20and%20the%20common%20criteria%20to%20assess%20this%20quality%20is%20not%20common%20for%20all%20reviewers.%20You%20can%20have%20some%3A%0D%0A-%20It%20seems%20that%20the%20coding%20standard%20are%20not%20follow" title="NuJIJ"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/nujij.png" title="NuJIJ" alt="NuJIJ" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://ping.fm/ref/?link=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;title=OO%20design%20principles&amp;body=For%20any%20evaluation%20of%20architecture%2C%20the%20natural%20question%20is%20raised%20whether%20the%20architecture%20is%20good%20and%20the%20common%20criteria%20to%20assess%20this%20quality%20is%20not%20common%20for%20all%20reviewers.%20You%20can%20have%20some%3A%0D%0A-%20It%20seems%20that%20the%20coding%20standard%20are%20not%20follow" title="Ping.fm"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/ping.png" title="Ping.fm" alt="Ping.fm" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="PlugIM"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="PlugIM" alt="PlugIM" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Pownce"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Pownce" alt="Pownce" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="ppnow"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="ppnow" alt="ppnow" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;partner=sociable" title="Print"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.propeller.com/submit/?url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F" title="Propeller"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/propeller.png" title="Propeller" alt="Propeller" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://ratimarks.org/bookmarks.php/?action=add&address=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;title=OO%20design%20principles" title="Ratimarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/ratimarks.png" title="Ratimarks" alt="Ratimarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://rec6.via6.com/link.php?url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;=OO%20design%20principles" title="Rec6"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/rec6.png" title="Rec6" alt="Rec6" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;title=OO%20design%20principles" title="Reddit"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="SalesMarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="SalesMarks" alt="SalesMarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.scoopeo.com/scoop/new?newurl=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;title=OO%20design%20principles" title="Scoopeo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/scoopeo.png" title="Scoopeo" alt="Scoopeo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="scuttle"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="scuttle" alt="scuttle" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://segnalo.alice.it/post.html.php?url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;title=OO%20design%20principles" title="Segnalo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/segnalo.png" title="Segnalo" alt="Segnalo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Shadows"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Shadows" alt="Shadows" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.simpy.com/simpy/LinkAdd.do?href=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;title=OO%20design%20principles" title="Simpy"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/simpy.png" title="Simpy" alt="Simpy" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://slashdot.org/bookmark.pl?title=OO%20design%20principles&amp;url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F" title="Slashdot"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/slashdot.png" title="Slashdot" alt="Slashdot" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Smarking"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Smarking" alt="Smarking" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://socialogs.com/add_story.php?story_url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;story_title=OO%20design%20principles" title="Socialogs"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/socialogs.png" title="Socialogs" alt="Socialogs" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.sphere.com/search?q=sphereit:http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;title=OO%20design%20principles" title="SphereIt"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/sphere.png" title="SphereIt" alt="SphereIt" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Spurl"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Spurl" alt="Spurl" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;title=OO%20design%20principles" title="StumbleUpon"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Symbaloo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Symbaloo" alt="Symbaloo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Taggly"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Taggly" alt="Taggly" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TailRank"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="TailRank" alt="TailRank" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F" title="Technorati"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.thisnext.com/pick/new/submit/sociable/?url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;name=OO%20design%20principles" title="ThisNext"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/thisnext.png" title="ThisNext" alt="ThisNext" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://tipd.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F" title="Tipd"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/tipd.png" title="Tipd" alt="Tipd" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;t=OO%20design%20principles&amp;s=For%20any%20evaluation%20of%20architecture%2C%20the%20natural%20question%20is%20raised%20whether%20the%20architecture%20is%20good%20and%20the%20common%20criteria%20to%20assess%20this%20quality%20is%20not%20common%20for%20all%20reviewers.%20You%20can%20have%20some%3A%0D%0A-%20It%20seems%20that%20the%20coding%20standard%20are%20not%20follow" title="Tumblr"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/tumblr.png" title="Tumblr" alt="Tumblr" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TwitThis"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.upnews.it/submit?url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;title=OO%20design%20principles" title="Upnews"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/upnews.png" title="Upnews" alt="Upnews" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.webnews.de/einstellen?url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;title=OO%20design%20principles" title="Webnews.de"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/webnews.png" title="Webnews.de" alt="Webnews.de" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://webride.org/discuss/split.php?uri=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;title=OO%20design%20principles" title="Webride"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/webride.png" title="Webride" alt="Webride" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.com/vote?url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F" title="Wikio"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio" alt="Wikio" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.fr/vote?url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F" title="Wikio FR"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio FR" alt="Wikio FR" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.it/vote?url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F" title="Wikio IT"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio IT" alt="Wikio IT" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://wists.com/s.php?c=&amp;r=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;title=OO%20design%20principles" title="Wists"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wists.png" title="Wists" alt="Wists" class="sociable-hovers sociable_wists" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wykop.pl/dodaj?url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F" title="Wykop"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wykop.png" title="Wykop" alt="Wykop" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.xerpi.com/block/add_link_from_extension?url=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;title=OO%20design%20principles" title="Xerpi"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/xerpi.png" title="Xerpi" alt="Xerpi" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;submitHeadline=OO%20design%20principles&amp;submitSummary=For%20any%20evaluation%20of%20architecture%2C%20the%20natural%20question%20is%20raised%20whether%20the%20architecture%20is%20good%20and%20the%20common%20criteria%20to%20assess%20this%20quality%20is%20not%20common%20for%20all%20reviewers.%20You%20can%20have%20some%3A%0D%0A-%20It%20seems%20that%20the%20coding%20standard%20are%20not%20follow&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="YahooMyWeb"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="YahooMyWeb" alt="YahooMyWeb" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://yigg.de/neu?exturl=http%3A%2F%2Fblog.esofthead.com%2Foo-design-principles%2F&amp;exttitle=OO%20design%20principles" title="Yigg"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/yiggit.png" title="Yigg" alt="Yigg" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://blog.esofthead.com/oo-design-principles/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Do we need to use Dependency injection pattern?</title>
		<link>http://blog.esofthead.com/do-we-need-to-use-dependency-injection-pattern/</link>
		<comments>http://blog.esofthead.com/do-we-need-to-use-dependency-injection-pattern/#comments</comments>
		<pubDate>Mon, 25 Dec 2006 18:25:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Object Oriented and Design]]></category>

		<guid isPermaLink="false">http://blog.esofthead.com/?p=9</guid>
		<description><![CDATA[Dependency injection pattern becomes popular recent years. But what is the root cause of this event and do you really need to use this pattern in your work? I know this pattern when my friend introduce me the Pico container and the article written by Martin Fowler (you can read it here). In the first [...]]]></description>
			<content:encoded><![CDATA[<p class="first-child "><span title="D" class="cap"><span>D</span></span>ependency injection pattern becomes popular recent years. But what is the root cause of this event and do you really need to use this pattern in your work?<img class="mce_plugin_wordpress_more" title="More..." src="http://www.haiphucnguyen.net/blog/wp-includes/js/tinymce/themes/advanced/images/spacer.gif" alt="More..." width="100%" height="10" /> I know this pattern when my friend introduce me the Pico container and the article written by Martin Fowler (you can read it here). In the first read, I am impressed with what Martin said and what I did immediately after that is trying the frameworks is discussed in his article. Two years later, it is time for me to write some notes about this pattern after several real practices of applying it to my work.<span id="more-9"></span><br />
Let's go with me and the simple example that all you know as the common first program "Hello world". I will illustrate ideas via Java program languages but it is also applied for any OO languages, especially for .NET.</p>
<p><strong>Example 1: Hello world program</strong></p>
<pre class="java5"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Helloworld <span style="color: #66cc66;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #993333;">void</span> main<span style="color: #66cc66;">&#40;</span>string<span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span> args<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
    <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/System.html"><span style="color: #aaaadd; font-weight: bold;">System</span></a>.<span style="color: #006600;">out</span>.<span style="color: #006600;">println</span><span style="color: #66cc66;">&#40;</span>“Hello world”<span style="color: #66cc66;">&#41;</span>;
  <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre>
<p>This program is simple, right? And it does not represent any OO idea. But when the requirement changes that you need support the ‘Hello world’ program for multiple languages. The natural approach is separating class HelloWorld to separated classes.</p>
<p><strong>Example 2: Re-writing 'Hello world' program</strong><br />
This program is very simple, right? And it does not represent any OO idea in source code. But when the requirement changes, it says that you need support the "Hello World" program for multiple languages. The natural approach is separating the class HelloWorld into separated classes.</p>
<pre class="java5"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">interface</span> HelloWorld <span style="color: #66cc66;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #993333;">void</span> sayHello<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span> 
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> HelloworldEng <span style="color: #000000; font-weight: bold;">implements</span> Helloworld <span style="color: #66cc66;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #993333;">void</span> sayHello<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
    <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/System.html"><span style="color: #aaaadd; font-weight: bold;">System</span></a>.<span style="color: #006600;">out</span>.<span style="color: #006600;">println</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Hello world&quot;</span><span style="color: #66cc66;">&#41;</span>;
  <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span> 
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> TestProgram <span style="color: #66cc66;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #993333;">void</span> main<span style="color: #66cc66;">&#40;</span><a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html"><span style="color: #aaaadd; font-weight: bold;">String</span></a><span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span> args<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
    HelloWorld helloworld = <span style="color: #000000; font-weight: bold;">new</span> HelloWordEng<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
    helloworld.<span style="color: #006600;">sayHello</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
  <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre>
<p>Such program is better than the original but if user want to change the 'Hello world' message to another language we must modify the source code of TestProgram.java. It is violated with 'Open Closed principle'. What should we do now?</p>
<p>In fact to reduce the coupling between TestProgram and HelloWorld classes, we have two approaches. One is using Abstract Factory pattern and one is using Dependency Injection framework. If we use the first approach, the program is written like this</p>
<pre class="java5"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> TestProgram <span style="color: #66cc66;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #993333;">void</span> main<span style="color: #66cc66;">&#40;</span>string<span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span> args<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
    Helloworld hello = HelloWordFactory.<span style="color: #006600;">createHelloInstance</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
    hello.<span style="color: #006600;">sayHello</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
  <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre>
<pre class="java5"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> HelloworldFactory <span style="color: #66cc66;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">public</span> Helloworld createHelloInstance<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
    <span style="color: #808080; font-style: italic;">//using reflection to load the Helloworld instance via</span>
    <span style="color: #808080; font-style: italic;">//application property</span>
    <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html"><span style="color: #aaaadd; font-weight: bold;">String</span></a> className = <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/System.html"><span style="color: #aaaadd; font-weight: bold;">System</span></a>.<span style="color: #006600;">getProperty</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;helloworld.instance&quot;</span><span style="color: #66cc66;">&#41;</span>;
    <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html"><span style="color: #aaaadd; font-weight: bold;">Class</span></a> c = <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html"><span style="color: #aaaadd; font-weight: bold;">Class</span></a>.<span style="color: #006600;">forName</span><span style="color: #66cc66;">&#40;</span>className<span style="color: #66cc66;">&#41;</span>;
    ..
  <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre>
<p>Using abstract factory method, whenever you need to change the implementation of Helloworld instance, you only need to modify the application property to the Helloworld implementation class name. This makes the TestProgram and Helloworld implementation are not relative and we do not violate the principle Open Closed.Now, let us return the second approach of using Dependency Injection (DI) pattern. We have 3 forms of DI, they are constructor, setter and interface. The example here using DI setter forms with Spring framework</p>
<p><strong>Example 3: Using DI setter</strong></p>
<pre class="java5"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> HelloWorldService <span style="color: #66cc66;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">private</span> HelloWorld helloWorld;
&nbsp;
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #993333;">void</span> setHelloWorld<span style="color: #66cc66;">&#40;</span>HelloWorld helloworldInst<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006600;">helloWorld</span> = helloworldInst;
  <span style="color: #66cc66;">&#125;</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #993333;">void</span> sayHello<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006600;">helloWorld</span>.<span style="color: #006600;">sayHello</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
  <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre>
<p>After that, write the spring configuration and we can use the HelloWorldService in our TestProgram</p>
<pre class="java5"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> TestProgram <span style="color: #66cc66;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #993333;">void</span> main<span style="color: #66cc66;">&#40;</span>string<span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span> args<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
    BeanFactory factory = <span style="color: #000000; font-weight: bold;">new</span> XmlBeanFactory<span style="color: #66cc66;">&#40;</span>
          <span style="color: #000000; font-weight: bold;">new</span> ClassPathResource<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;HelloServiceEx.xml&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
    HelloWorldService service = factory.<span style="color: #006600;">getBean</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;helloworldBean&quot;</span><span style="color: #66cc66;">&#41;</span>;
    service.<span style="color: #006600;">sayHello</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
  <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre>
<p>Compare two approaches, we see that both of them achieve the same goal but DI framework like Spring has more advantages that it is not only the way of initializing the instance but more flexible and general when we set the pre-defined data for implementation instance. In simple application that only needs to care the way of initializing implementation instance, I suggest to use the Abstract Factory pattern but other cases using a DI framework is the prefer method. Using DI pattern can make us achieve the loose coupling among collaborating classes (the actor and implementation classes), it makes our program is more testable, debugable, flexible. It is all for a OO design.<br />
<a class="a2a_dd" onmouseover="a2a_show_dropdown(this)" onmouseout="a2a_onMouseOut_delay()" href="http://www.addtoany.com/subscribe?linkname=eSoftHead%20Blog%20Feed&amp;linkurl=http%3A%2F%2Fblog.esofthead.com%2F%3Ffeed%3Drss2"><img src="http://static.addtoany.com/buttons/subscribe_120_16.gif" border="0" alt="Subscribe" width="120" height="16" /></a><script type="text/javascript"><!--
a2a_linkname="eSoftHead Blog Feed";a2a_linkurl="http://blog.esofthead.com/?feed=rss2";
// --></script><script src="http://static.addtoany.com/menu/feed.js" type="text/javascript"></script></p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F&amp;bodytext=Dependency%20injection%20pattern%20becomes%20popular%20recent%20years.%20But%20what%20is%20the%20root%20cause%20of%20this%20event%20and%20do%20you%20really%20need%20to%20use%20this%20pattern%20in%20your%20work%3F%20I%20know%20this%20pattern%20when%20my%20friend%20introduce%20me%20the%20Pico%20container%20and%20the%20article%20written%20by" title="Digg"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F" title="Sphinn"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F&amp;notes=Dependency%20injection%20pattern%20becomes%20popular%20recent%20years.%20But%20what%20is%20the%20root%20cause%20of%20this%20event%20and%20do%20you%20really%20need%20to%20use%20this%20pattern%20in%20your%20work%3F%20I%20know%20this%20pattern%20when%20my%20friend%20introduce%20me%20the%20Pico%20container%20and%20the%20article%20written%20by" title="del.icio.us"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;t=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F" title="Facebook"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F" title="Mixx"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F&amp;annotation=Dependency%20injection%20pattern%20becomes%20popular%20recent%20years.%20But%20what%20is%20the%20root%20cause%20of%20this%20event%20and%20do%20you%20really%20need%20to%20use%20this%20pattern%20in%20your%20work%3F%20I%20know%20this%20pattern%20when%20my%20friend%20introduce%20me%20the%20Pico%20container%20and%20the%20article%20written%20by" title="Google Bookmarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://barrapunto.com/submit.pl?subj=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F&amp;story=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F" title="BarraPunto"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/barrapunto.png" title="BarraPunto" alt="BarraPunto" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://bitacoras.com/anotaciones/http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F" title="Bitacoras.com"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/bitacoras.png" title="Bitacoras.com" alt="Bitacoras.com" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="blinkbits"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="blinkbits" alt="blinkbits" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;Title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F" title="BlinkList"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blinklist.png" title="BlinkList" alt="BlinkList" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F" title="blogmarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blogmarks.png" title="blogmarks" alt="blogmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes" alt="BlogMemes" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Cn"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Cn" alt="BlogMemes Cn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Fr"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Fr" alt="BlogMemes Fr" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Jp"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Jp" alt="BlogMemes Jp" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Sp"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Sp" alt="BlogMemes Sp" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.blogospherenews.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F" title="Blogosphere News"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blogospherenews.png" title="Blogosphere News" alt="Blogosphere News" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Blogsvine"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Blogsvine" alt="Blogsvine" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://cimlap.blogter.hu/index.php?action=suggest_link&amp;title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F" title="blogtercimlap"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blogter.png" title="blogtercimlap" alt="blogtercimlap" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Book.mark.hu"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Book.mark.hu" alt="Book.mark.hu" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Bumpzee"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Bumpzee" alt="Bumpzee" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="co.mments"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="co.mments" alt="co.mments" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.connotea.org/addpopup?continue=confirm&amp;uri=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F&amp;description=Dependency%20injection%20pattern%20becomes%20popular%20recent%20years.%20But%20what%20is%20the%20root%20cause%20of%20this%20event%20and%20do%20you%20really%20need%20to%20use%20this%20pattern%20in%20your%20work%3F%20I%20know%20this%20pattern%20when%20my%20friend%20introduce%20me%20the%20Pico%20container%20and%20the%20article%20written%20by" title="connotea"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/connotea.png" title="connotea" alt="connotea" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="De.lirio.us"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="De.lirio.us" alt="De.lirio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.designfloat.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F" title="Design Float"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/designfloat.png" title="Design Float" alt="Design Float" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F" title="DotNetKicks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/dotnetkicks.png" title="DotNetKicks" alt="DotNetKicks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F" title="DZone"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.ekudos.nl/artikel/nieuw?url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F&amp;desc=Dependency%20injection%20pattern%20becomes%20popular%20recent%20years.%20But%20what%20is%20the%20root%20cause%20of%20this%20event%20and%20do%20you%20really%20need%20to%20use%20this%20pattern%20in%20your%20work%3F%20I%20know%20this%20pattern%20when%20my%20friend%20introduce%20me%20the%20Pico%20container%20and%20the%20article%20written%20by" title="eKudos"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/ekudos.png" title="eKudos" alt="eKudos" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="mailto:?subject=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F&amp;body=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F" title="email"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://cgi.fark.com/cgi/fark/farkit.pl?h=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F&amp;u=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F" title="Fark"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/fark.png" title="Fark" alt="Fark" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://faves.com/Authoring.aspx?u=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F" title="Faves"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/bluedot.png" title="Faves" alt="Faves" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="feedmelinks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="feedmelinks" alt="feedmelinks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://beta3.fleck.com/bookmarklet.php?url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F" title="Fleck"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/fleck.png" title="Fleck" alt="Fleck" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Furl"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Furl" alt="Furl" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="GeenRedactie"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="GeenRedactie" alt="GeenRedactie" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://globalgrind.com/submission/submit.aspx?url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;type=Article&amp;title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F" title="Global Grind"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/globalgrind.png" title="Global Grind" alt="Global Grind" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.gwar.pl/DodajGwar.html?u=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F" title="Gwar"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/gwar.png" title="Gwar" alt="Gwar" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.haohaoreport.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F" title="Haohao"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/haohao.png" title="Haohao" alt="Haohao" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://healthranker.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F" title="HealthRanker"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/healthranker.png" title="HealthRanker" alt="HealthRanker" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.hemidemi.com/user_bookmark/new?title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F" title="Hemidemi"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/hemidemi.png" title="Hemidemi" alt="Hemidemi" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://identi.ca/notice/new?status_textarea=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F" title="Identi.ca"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/identica.png" title="Identi.ca" alt="Identi.ca" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.indianpad.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F" title="IndianPad"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/indianpad.png" title="IndianPad" alt="IndianPad" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://internetmedia.hu/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F" title="Internetmedia"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/im.png" title="Internetmedia" alt="Internetmedia" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="kick.ie"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="kick.ie" alt="kick.ie" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.kirtsy.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F" title="Kirtsy"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/kirtsy.png" title="Kirtsy" alt="Kirtsy" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://laaik.it/NewStoryCompact.aspx?uri=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;headline=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F&amp;cat=5e082fcc-8a3b-47e2-acec-fdf64ff19d12" title="laaik.it"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/laaikit.png" title="laaik.it" alt="laaik.it" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Leonaut"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Leonaut" alt="Leonaut" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkagogo.com/go/AddNoPopup?url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F" title="LinkaGoGo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkagogo.png" title="LinkaGoGo" alt="LinkaGoGo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://linkarena.com/bookmarks/addlink/?url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F" title="LinkArena"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkarena.png" title="LinkArena" alt="LinkArena" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F&amp;source=eSoftHead%2C+a+Vietnam+Software+Outsourcing+Company+The+official+blog+of+eSoftHead+Company&amp;summary=Dependency%20injection%20pattern%20becomes%20popular%20recent%20years.%20But%20what%20is%20the%20root%20cause%20of%20this%20event%20and%20do%20you%20really%20need%20to%20use%20this%20pattern%20in%20your%20work%3F%20I%20know%20this%20pattern%20when%20my%20friend%20introduce%20me%20the%20Pico%20container%20and%20the%20article%20written%20by" title="LinkedIn"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkter.hu/index.php?action=suggest_link&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F" title="Linkter"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkter.png" title="Linkter" alt="Linkter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F" title="Live"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Ma.gnolia"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Ma.gnolia" alt="Ma.gnolia" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://meneame.net/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F" title="Meneame"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/meneame.png" title="Meneame" alt="Meneame" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mister-wong.com/addurl/?bm_url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;bm_description=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F&amp;plugin=soc" title="MisterWong"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong" alt="MisterWong" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;bm_description=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F&amp;plugin=soc" title="MisterWong.DE"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.muti.co.za/submit?url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F" title="muti"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/muti.png" title="muti" alt="muti" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://myshare.url.com.tw/index.php?func=newurl&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;desc=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F" title="MyShare"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/myshare.png" title="MyShare" alt="MyShare" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;t=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F" title="MySpace"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/myspace.png" title="MySpace" alt="MySpace" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.n4g.com/tips.aspx?url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F" title="N4G"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/n4g.png" title="N4G" alt="N4G" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.netvibes.com/share?title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F" title="Netvibes"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.netvouz.com/action/submitBookmark?url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F&amp;popup=no" title="Netvouz"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/netvouz.png" title="Netvouz" alt="Netvouz" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.newsvine.com/_tools/seed&amp;save?u=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;h=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F" title="NewsVine"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/newsvine.png" title="NewsVine" alt="NewsVine" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://nujij.nl/jij.lynkx?t=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F&amp;u=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;b=Dependency%20injection%20pattern%20becomes%20popular%20recent%20years.%20But%20what%20is%20the%20root%20cause%20of%20this%20event%20and%20do%20you%20really%20need%20to%20use%20this%20pattern%20in%20your%20work%3F%20I%20know%20this%20pattern%20when%20my%20friend%20introduce%20me%20the%20Pico%20container%20and%20the%20article%20written%20by" title="NuJIJ"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/nujij.png" title="NuJIJ" alt="NuJIJ" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://ping.fm/ref/?link=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F&amp;body=Dependency%20injection%20pattern%20becomes%20popular%20recent%20years.%20But%20what%20is%20the%20root%20cause%20of%20this%20event%20and%20do%20you%20really%20need%20to%20use%20this%20pattern%20in%20your%20work%3F%20I%20know%20this%20pattern%20when%20my%20friend%20introduce%20me%20the%20Pico%20container%20and%20the%20article%20written%20by" title="Ping.fm"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/ping.png" title="Ping.fm" alt="Ping.fm" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="PlugIM"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="PlugIM" alt="PlugIM" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Pownce"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Pownce" alt="Pownce" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="ppnow"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="ppnow" alt="ppnow" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;partner=sociable" title="Print"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.propeller.com/submit/?url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F" title="Propeller"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/propeller.png" title="Propeller" alt="Propeller" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://ratimarks.org/bookmarks.php/?action=add&address=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F" title="Ratimarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/ratimarks.png" title="Ratimarks" alt="Ratimarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://rec6.via6.com/link.php?url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F" title="Rec6"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/rec6.png" title="Rec6" alt="Rec6" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F" title="Reddit"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="SalesMarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="SalesMarks" alt="SalesMarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.scoopeo.com/scoop/new?newurl=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F" title="Scoopeo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/scoopeo.png" title="Scoopeo" alt="Scoopeo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="scuttle"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="scuttle" alt="scuttle" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://segnalo.alice.it/post.html.php?url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F" title="Segnalo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/segnalo.png" title="Segnalo" alt="Segnalo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Shadows"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Shadows" alt="Shadows" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.simpy.com/simpy/LinkAdd.do?href=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F" title="Simpy"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/simpy.png" title="Simpy" alt="Simpy" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://slashdot.org/bookmark.pl?title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F" title="Slashdot"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/slashdot.png" title="Slashdot" alt="Slashdot" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Smarking"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Smarking" alt="Smarking" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://socialogs.com/add_story.php?story_url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;story_title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F" title="Socialogs"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/socialogs.png" title="Socialogs" alt="Socialogs" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.sphere.com/search?q=sphereit:http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F" title="SphereIt"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/sphere.png" title="SphereIt" alt="SphereIt" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Spurl"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Spurl" alt="Spurl" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F" title="StumbleUpon"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Symbaloo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Symbaloo" alt="Symbaloo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Taggly"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Taggly" alt="Taggly" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TailRank"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="TailRank" alt="TailRank" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F" title="Technorati"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.thisnext.com/pick/new/submit/sociable/?url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;name=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F" title="ThisNext"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/thisnext.png" title="ThisNext" alt="ThisNext" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://tipd.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F" title="Tipd"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/tipd.png" title="Tipd" alt="Tipd" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;t=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F&amp;s=Dependency%20injection%20pattern%20becomes%20popular%20recent%20years.%20But%20what%20is%20the%20root%20cause%20of%20this%20event%20and%20do%20you%20really%20need%20to%20use%20this%20pattern%20in%20your%20work%3F%20I%20know%20this%20pattern%20when%20my%20friend%20introduce%20me%20the%20Pico%20container%20and%20the%20article%20written%20by" title="Tumblr"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/tumblr.png" title="Tumblr" alt="Tumblr" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TwitThis"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.upnews.it/submit?url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F" title="Upnews"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/upnews.png" title="Upnews" alt="Upnews" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.webnews.de/einstellen?url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F" title="Webnews.de"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/webnews.png" title="Webnews.de" alt="Webnews.de" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://webride.org/discuss/split.php?uri=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F" title="Webride"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/webride.png" title="Webride" alt="Webride" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.com/vote?url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F" title="Wikio"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio" alt="Wikio" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.fr/vote?url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F" title="Wikio FR"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio FR" alt="Wikio FR" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.it/vote?url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F" title="Wikio IT"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio IT" alt="Wikio IT" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://wists.com/s.php?c=&amp;r=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F" title="Wists"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wists.png" title="Wists" alt="Wists" class="sociable-hovers sociable_wists" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wykop.pl/dodaj?url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F" title="Wykop"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wykop.png" title="Wykop" alt="Wykop" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.xerpi.com/block/add_link_from_extension?url=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;title=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F" title="Xerpi"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/xerpi.png" title="Xerpi" alt="Xerpi" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;submitHeadline=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F&amp;submitSummary=Dependency%20injection%20pattern%20becomes%20popular%20recent%20years.%20But%20what%20is%20the%20root%20cause%20of%20this%20event%20and%20do%20you%20really%20need%20to%20use%20this%20pattern%20in%20your%20work%3F%20I%20know%20this%20pattern%20when%20my%20friend%20introduce%20me%20the%20Pico%20container%20and%20the%20article%20written%20by&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="YahooMyWeb"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="YahooMyWeb" alt="YahooMyWeb" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://yigg.de/neu?exturl=http%3A%2F%2Fblog.esofthead.com%2Fdo-we-need-to-use-dependency-injection-pattern%2F&amp;exttitle=Do%20we%20need%20to%20use%20Dependency%20injection%20pattern%3F" title="Yigg"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/yiggit.png" title="Yigg" alt="Yigg" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://blog.esofthead.com/do-we-need-to-use-dependency-injection-pattern/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Singleton, is it a false pattern ?</title>
		<link>http://blog.esofthead.com/singleton-is-it-a-false-pattern/</link>
		<comments>http://blog.esofthead.com/singleton-is-it-a-false-pattern/#comments</comments>
		<pubDate>Mon, 25 Dec 2006 18:21:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Object Oriented and Design]]></category>
		<category><![CDATA[Software Engineer]]></category>

		<guid isPermaLink="false">http://blog.esofthead.com/?p=7</guid>
		<description><![CDATA[Singleton is the first pattern I learned when I am a fresh programmer, it is impressed to me at that time due to it is easy to learn. Years by years, I have learned many variances of this pattern through how to apply lazy loading the static instance to the thread-safe of initializing the static [...]]]></description>
			<content:encoded><![CDATA[<p class="first-child "><span style="font-family: Arial;"><span title="S" class="cap"><span>S</span></span>ingleton is the first pattern I learned when I am a fresh programmer, it is impressed to me at that time due to it is easy to learn. Years by years, I have learned many variances of this pattern through how to apply lazy loading the static instance to the thread-safe of initializing the static instance by using the two main streams of implementation</span><span id="more-7"></span><span style="font-family: Arial;">:</span></p>
<p><strong>Method 1:</strong></p>
<pre class="java5"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> SingletonEx <span style="color: #66cc66;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">static</span> SingletonEx impl = <span style="color: #b13366;">null</span>;
    <span style="color: #000000; font-weight: bold;">private</span>  SingletonEx<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
        ...
    <span style="color: #66cc66;">&#125;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> SingletonEx getInstance<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
          <span style="color: #808080; font-style: italic;">//another implementation to prevent</span>
          <span style="color: #808080; font-style: italic;">//thread-safe problem is making the</span>
          <span style="color: #808080; font-style: italic;">//synchronized keywork before this statement</span>
          <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>impl == <span style="color: #b13366;">null</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
              impl = <span style="color: #000000; font-weight: bold;">new</span> SingletonEx<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">//lazy loading static instance impl</span>
          <span style="color: #66cc66;">&#125;</span>
          <span style="color: #000000; font-weight: bold;">return</span> impl;
     <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre>
<p><strong>Method 2:</strong></p>
<pre class="java5"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> SingletonEx <span style="color: #66cc66;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">static</span> SingletonEx impl = <span style="color: #000000; font-weight: bold;">new</span> SingletonEx<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #000000; font-weight: bold;">private</span> SingletonEx<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
        ....
    <span style="color: #66cc66;">&#125;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> SingletonEx getInstance<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">return</span> impl;
    <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre>
<p>Some developers guys critize the method 1 is not thread-safe, even if we make it is thread-safe, it takes cost whenever we call getInstances method. But we have some other guys say that we only use when we need so method 2 takes cost when the program init Singleton instance. Some smarter guys say that we use method 1 or method 2 depend on context, ok it sounds better than option1 or 2 but it is not enough, it has some reasons:</p>
<p><strong>Method 1:<br />
</strong><br />
You need lazy loading, it is ok but it seems fail in your arguments <img src='http://blog.esofthead.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> . You do not save any time using lazy loading at all, when you need the instance at first, you must create the instance, if the cost of creating instance too much it will pact the response time of program to user, so why do you create it in some time before, moreover you need to care the thread-safe problem while creating instance,<br />
Moreover, it is not a must in design pattern but singleton objects in most cases are called many times in your program (in my cases, this argument is all times). So creating it at first is a good choice for us.</p>
<p><strong>Method 2:<br />
</strong><br />
As above arguments, you do not need to use lazy loading for singleton pattern and method 2 seems to be better, except you need consider the time of creating the singleton object, if the cost of creating is high you should consider loading it at the first of init program (warm up)</p>
<p>But, singleton pattern still be a dangerous pattern and is it really useful for architects. I think the answer is negative due to the following reasons:<br />
1. It is not thread-safe in operation (most of developers care thread-safe while creating but not operating <img src='http://blog.esofthead.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> )<br />
2. It does not abstract the implementation; it is harm when the singleton instance is not stable enough.<br />
3. It makes the design not flexible, all are fixed with its implementation and it takes cost while refractoring.<br />
4. It may lead the bottleneck on operations, and unexpected behaviors.</p>
<p>That makes me carefully when using singleton pattern, only when needed and think deeply its consequences when apply, some of experiences are:<br />
1. Make only one singleton pattern in one place. That means you should not create many singleton objects in your design, but create one factory object (apply singleton pattern) and create singleton object through that object.<br />
2. Only use operations in singleton object as read object (avoid thread safe problem). It is a good choice if we use it for cache mechanism.<br />
3. Apply for stable classes that we make sure no change in future (of course, you do not know in future, but in current we must be sure it has no change) . Do you remember the impact when string class add more methods in java 1.4, what the hell of change impact.</p>
<p>Some developers guys critize the method 1 is not thread-safe, even if we make it is thread-safe, it takes cost whenever we call getInstances method. But we have some other guys say that we only use when we need so method 2 takes cost when the program init Singleton instance. Some smarter guys say that we use method 1 or method 2 depend on context, ok it sounds better than option1 or 2 but it is not enough, it has some reasons:</p>
<p><strong>Method 1:</strong></p>
<p>You need lazy loading, it is ok but it seems fail in your arguments <img src='http://blog.esofthead.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> . You do not save any time using lazy loading at all, when you need the instance at first, you must create the instance, if the cost of creating instance too much it will pact the response time of program to user, so why do you create it in some time before, moreover you need to care the thread-safe problem while creating instance.</p>
<p>Moreover, it is not a must in design pattern but singleton objects in most cases are called many times in your program (in my cases, this argument is all times). So creating it at first is a good choice for us.</p>
<p><strong>Method 2:</strong></p>
<p>As above arguments, you do not need to use lazy loading for singleton pattern and method 2 seems to be better, except you need consider the time of creating the singleton object, if the cost of creating is high you should consider loading it at the first of init program (warm up) But, singleton pattern still be a dangerous pattern and is it really useful for architects. I think the answer is negative due to the following reasons:<br />
1. It is not thread-safe in operation (most of developers care thread-safe while creating but not operating <img src='http://blog.esofthead.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> )<br />
2. It does not abstract the implementation; it is harm when the singleton instance is not stable enough.<br />
3. It makes the design not flexible, all are fixed with its implementation and it takes cost while refractoring.<br />
4. It may lead the bottleneck on operations, and unexpected behaviors. That makes me carefully when using singleton pattern, only when needed and think deeply its consequences when apply, some of experiences are:</p>
<ul>
<li>
<ul>
<li>Make only one singleton pattern in one place. That means you should not create many singleton objects in your design, but create one factory object (apply singleton pattern) and create singleton object through that object.</li>
<li>Only use operations in singleton object as read object (avoid thread safe problem). It is a good choice if we use it for cache mechanism.</li>
</ul>
<ul>
<li>Apply for stable classes that we make sure no change in future (of course, you do not know in future, but in current we must be sure it has no change) . Do you remember the impact when string class add more methods in java 1.4, what the hell of change impact.</li>
</ul>
</li>
</ul>
<p><a class="a2a_dd" onmouseover="a2a_show_dropdown(this)" onmouseout="a2a_onMouseOut_delay()" href="http://www.addtoany.com/subscribe?linkname=eSoftHead%20Blog%20Feed&amp;linkurl=http%3A%2F%2Fblog.esofthead.com%2F%3Ffeed%3Drss2"><img src="http://static.addtoany.com/buttons/subscribe_120_16.gif" border="0" alt="Subscribe" width="120" height="16" /></a><script type="text/javascript"><!--
a2a_linkname="eSoftHead Blog Feed";a2a_linkurl="http://blog.esofthead.com/?feed=rss2";
// --></script><script src="http://static.addtoany.com/menu/feed.js" type="text/javascript"></script></p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F&amp;bodytext=Singleton%20is%20the%20first%20pattern%20I%20learned%20when%20I%20am%20a%20fresh%20programmer%2C%20it%20is%20impressed%20to%20me%20at%20that%20time%20due%20to%20it%20is%20easy%20to%20learn.%20Years%20by%20years%2C%20I%20have%20learned%20many%20variances%20of%20this%20pattern%20through%20how%20to%20apply%20lazy%20loading%20the%20static%20instance%20" title="Digg"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F" title="Sphinn"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F&amp;notes=Singleton%20is%20the%20first%20pattern%20I%20learned%20when%20I%20am%20a%20fresh%20programmer%2C%20it%20is%20impressed%20to%20me%20at%20that%20time%20due%20to%20it%20is%20easy%20to%20learn.%20Years%20by%20years%2C%20I%20have%20learned%20many%20variances%20of%20this%20pattern%20through%20how%20to%20apply%20lazy%20loading%20the%20static%20instance%20" title="del.icio.us"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;t=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F" title="Facebook"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F" title="Mixx"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F&amp;annotation=Singleton%20is%20the%20first%20pattern%20I%20learned%20when%20I%20am%20a%20fresh%20programmer%2C%20it%20is%20impressed%20to%20me%20at%20that%20time%20due%20to%20it%20is%20easy%20to%20learn.%20Years%20by%20years%2C%20I%20have%20learned%20many%20variances%20of%20this%20pattern%20through%20how%20to%20apply%20lazy%20loading%20the%20static%20instance%20" title="Google Bookmarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://barrapunto.com/submit.pl?subj=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F&amp;story=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F" title="BarraPunto"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/barrapunto.png" title="BarraPunto" alt="BarraPunto" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://bitacoras.com/anotaciones/http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F" title="Bitacoras.com"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/bitacoras.png" title="Bitacoras.com" alt="Bitacoras.com" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="blinkbits"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="blinkbits" alt="blinkbits" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;Title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F" title="BlinkList"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blinklist.png" title="BlinkList" alt="BlinkList" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F" title="blogmarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blogmarks.png" title="blogmarks" alt="blogmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes" alt="BlogMemes" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Cn"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Cn" alt="BlogMemes Cn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Fr"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Fr" alt="BlogMemes Fr" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Jp"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Jp" alt="BlogMemes Jp" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Sp"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Sp" alt="BlogMemes Sp" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.blogospherenews.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F" title="Blogosphere News"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blogospherenews.png" title="Blogosphere News" alt="Blogosphere News" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Blogsvine"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Blogsvine" alt="Blogsvine" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://cimlap.blogter.hu/index.php?action=suggest_link&amp;title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F" title="blogtercimlap"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blogter.png" title="blogtercimlap" alt="blogtercimlap" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Book.mark.hu"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Book.mark.hu" alt="Book.mark.hu" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Bumpzee"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Bumpzee" alt="Bumpzee" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="co.mments"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="co.mments" alt="co.mments" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.connotea.org/addpopup?continue=confirm&amp;uri=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F&amp;description=Singleton%20is%20the%20first%20pattern%20I%20learned%20when%20I%20am%20a%20fresh%20programmer%2C%20it%20is%20impressed%20to%20me%20at%20that%20time%20due%20to%20it%20is%20easy%20to%20learn.%20Years%20by%20years%2C%20I%20have%20learned%20many%20variances%20of%20this%20pattern%20through%20how%20to%20apply%20lazy%20loading%20the%20static%20instance%20" title="connotea"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/connotea.png" title="connotea" alt="connotea" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="De.lirio.us"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="De.lirio.us" alt="De.lirio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.designfloat.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F" title="Design Float"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/designfloat.png" title="Design Float" alt="Design Float" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F" title="DotNetKicks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/dotnetkicks.png" title="DotNetKicks" alt="DotNetKicks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F" title="DZone"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.ekudos.nl/artikel/nieuw?url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F&amp;desc=Singleton%20is%20the%20first%20pattern%20I%20learned%20when%20I%20am%20a%20fresh%20programmer%2C%20it%20is%20impressed%20to%20me%20at%20that%20time%20due%20to%20it%20is%20easy%20to%20learn.%20Years%20by%20years%2C%20I%20have%20learned%20many%20variances%20of%20this%20pattern%20through%20how%20to%20apply%20lazy%20loading%20the%20static%20instance%20" title="eKudos"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/ekudos.png" title="eKudos" alt="eKudos" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="mailto:?subject=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F&amp;body=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F" title="email"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://cgi.fark.com/cgi/fark/farkit.pl?h=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F&amp;u=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F" title="Fark"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/fark.png" title="Fark" alt="Fark" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://faves.com/Authoring.aspx?u=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F" title="Faves"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/bluedot.png" title="Faves" alt="Faves" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="feedmelinks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="feedmelinks" alt="feedmelinks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://beta3.fleck.com/bookmarklet.php?url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F" title="Fleck"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/fleck.png" title="Fleck" alt="Fleck" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Furl"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Furl" alt="Furl" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="GeenRedactie"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="GeenRedactie" alt="GeenRedactie" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://globalgrind.com/submission/submit.aspx?url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;type=Article&amp;title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F" title="Global Grind"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/globalgrind.png" title="Global Grind" alt="Global Grind" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.gwar.pl/DodajGwar.html?u=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F" title="Gwar"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/gwar.png" title="Gwar" alt="Gwar" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.haohaoreport.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F" title="Haohao"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/haohao.png" title="Haohao" alt="Haohao" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://healthranker.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F" title="HealthRanker"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/healthranker.png" title="HealthRanker" alt="HealthRanker" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.hemidemi.com/user_bookmark/new?title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F" title="Hemidemi"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/hemidemi.png" title="Hemidemi" alt="Hemidemi" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://identi.ca/notice/new?status_textarea=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F" title="Identi.ca"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/identica.png" title="Identi.ca" alt="Identi.ca" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.indianpad.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F" title="IndianPad"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/indianpad.png" title="IndianPad" alt="IndianPad" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://internetmedia.hu/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F" title="Internetmedia"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/im.png" title="Internetmedia" alt="Internetmedia" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="kick.ie"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="kick.ie" alt="kick.ie" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.kirtsy.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F" title="Kirtsy"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/kirtsy.png" title="Kirtsy" alt="Kirtsy" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://laaik.it/NewStoryCompact.aspx?uri=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;headline=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F&amp;cat=5e082fcc-8a3b-47e2-acec-fdf64ff19d12" title="laaik.it"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/laaikit.png" title="laaik.it" alt="laaik.it" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Leonaut"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Leonaut" alt="Leonaut" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkagogo.com/go/AddNoPopup?url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F" title="LinkaGoGo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkagogo.png" title="LinkaGoGo" alt="LinkaGoGo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://linkarena.com/bookmarks/addlink/?url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F" title="LinkArena"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkarena.png" title="LinkArena" alt="LinkArena" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F&amp;source=eSoftHead%2C+a+Vietnam+Software+Outsourcing+Company+The+official+blog+of+eSoftHead+Company&amp;summary=Singleton%20is%20the%20first%20pattern%20I%20learned%20when%20I%20am%20a%20fresh%20programmer%2C%20it%20is%20impressed%20to%20me%20at%20that%20time%20due%20to%20it%20is%20easy%20to%20learn.%20Years%20by%20years%2C%20I%20have%20learned%20many%20variances%20of%20this%20pattern%20through%20how%20to%20apply%20lazy%20loading%20the%20static%20instance%20" title="LinkedIn"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkter.hu/index.php?action=suggest_link&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F" title="Linkter"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkter.png" title="Linkter" alt="Linkter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F" title="Live"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Ma.gnolia"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Ma.gnolia" alt="Ma.gnolia" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://meneame.net/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F" title="Meneame"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/meneame.png" title="Meneame" alt="Meneame" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mister-wong.com/addurl/?bm_url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;bm_description=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F&amp;plugin=soc" title="MisterWong"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong" alt="MisterWong" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;bm_description=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F&amp;plugin=soc" title="MisterWong.DE"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.muti.co.za/submit?url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F" title="muti"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/muti.png" title="muti" alt="muti" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://myshare.url.com.tw/index.php?func=newurl&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;desc=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F" title="MyShare"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/myshare.png" title="MyShare" alt="MyShare" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;t=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F" title="MySpace"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/myspace.png" title="MySpace" alt="MySpace" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.n4g.com/tips.aspx?url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F" title="N4G"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/n4g.png" title="N4G" alt="N4G" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.netvibes.com/share?title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F" title="Netvibes"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.netvouz.com/action/submitBookmark?url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F&amp;popup=no" title="Netvouz"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/netvouz.png" title="Netvouz" alt="Netvouz" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.newsvine.com/_tools/seed&amp;save?u=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;h=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F" title="NewsVine"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/newsvine.png" title="NewsVine" alt="NewsVine" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://nujij.nl/jij.lynkx?t=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F&amp;u=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;b=Singleton%20is%20the%20first%20pattern%20I%20learned%20when%20I%20am%20a%20fresh%20programmer%2C%20it%20is%20impressed%20to%20me%20at%20that%20time%20due%20to%20it%20is%20easy%20to%20learn.%20Years%20by%20years%2C%20I%20have%20learned%20many%20variances%20of%20this%20pattern%20through%20how%20to%20apply%20lazy%20loading%20the%20static%20instance%20" title="NuJIJ"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/nujij.png" title="NuJIJ" alt="NuJIJ" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://ping.fm/ref/?link=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F&amp;body=Singleton%20is%20the%20first%20pattern%20I%20learned%20when%20I%20am%20a%20fresh%20programmer%2C%20it%20is%20impressed%20to%20me%20at%20that%20time%20due%20to%20it%20is%20easy%20to%20learn.%20Years%20by%20years%2C%20I%20have%20learned%20many%20variances%20of%20this%20pattern%20through%20how%20to%20apply%20lazy%20loading%20the%20static%20instance%20" title="Ping.fm"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/ping.png" title="Ping.fm" alt="Ping.fm" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="PlugIM"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="PlugIM" alt="PlugIM" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Pownce"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Pownce" alt="Pownce" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="ppnow"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="ppnow" alt="ppnow" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;partner=sociable" title="Print"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.propeller.com/submit/?url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F" title="Propeller"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/propeller.png" title="Propeller" alt="Propeller" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://ratimarks.org/bookmarks.php/?action=add&address=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F" title="Ratimarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/ratimarks.png" title="Ratimarks" alt="Ratimarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://rec6.via6.com/link.php?url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F" title="Rec6"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/rec6.png" title="Rec6" alt="Rec6" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F" title="Reddit"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="SalesMarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="SalesMarks" alt="SalesMarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.scoopeo.com/scoop/new?newurl=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F" title="Scoopeo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/scoopeo.png" title="Scoopeo" alt="Scoopeo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="scuttle"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="scuttle" alt="scuttle" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://segnalo.alice.it/post.html.php?url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F" title="Segnalo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/segnalo.png" title="Segnalo" alt="Segnalo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Shadows"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Shadows" alt="Shadows" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.simpy.com/simpy/LinkAdd.do?href=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F" title="Simpy"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/simpy.png" title="Simpy" alt="Simpy" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://slashdot.org/bookmark.pl?title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F" title="Slashdot"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/slashdot.png" title="Slashdot" alt="Slashdot" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Smarking"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Smarking" alt="Smarking" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://socialogs.com/add_story.php?story_url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;story_title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F" title="Socialogs"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/socialogs.png" title="Socialogs" alt="Socialogs" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.sphere.com/search?q=sphereit:http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F" title="SphereIt"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/sphere.png" title="SphereIt" alt="SphereIt" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Spurl"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Spurl" alt="Spurl" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F" title="StumbleUpon"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Symbaloo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Symbaloo" alt="Symbaloo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Taggly"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Taggly" alt="Taggly" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TailRank"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="TailRank" alt="TailRank" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F" title="Technorati"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.thisnext.com/pick/new/submit/sociable/?url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;name=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F" title="ThisNext"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/thisnext.png" title="ThisNext" alt="ThisNext" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://tipd.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F" title="Tipd"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/tipd.png" title="Tipd" alt="Tipd" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;t=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F&amp;s=Singleton%20is%20the%20first%20pattern%20I%20learned%20when%20I%20am%20a%20fresh%20programmer%2C%20it%20is%20impressed%20to%20me%20at%20that%20time%20due%20to%20it%20is%20easy%20to%20learn.%20Years%20by%20years%2C%20I%20have%20learned%20many%20variances%20of%20this%20pattern%20through%20how%20to%20apply%20lazy%20loading%20the%20static%20instance%20" title="Tumblr"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/tumblr.png" title="Tumblr" alt="Tumblr" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TwitThis"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.upnews.it/submit?url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F" title="Upnews"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/upnews.png" title="Upnews" alt="Upnews" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.webnews.de/einstellen?url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F" title="Webnews.de"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/webnews.png" title="Webnews.de" alt="Webnews.de" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://webride.org/discuss/split.php?uri=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F" title="Webride"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/webride.png" title="Webride" alt="Webride" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.com/vote?url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F" title="Wikio"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio" alt="Wikio" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.fr/vote?url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F" title="Wikio FR"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio FR" alt="Wikio FR" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.it/vote?url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F" title="Wikio IT"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio IT" alt="Wikio IT" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://wists.com/s.php?c=&amp;r=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F" title="Wists"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wists.png" title="Wists" alt="Wists" class="sociable-hovers sociable_wists" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wykop.pl/dodaj?url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F" title="Wykop"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wykop.png" title="Wykop" alt="Wykop" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.xerpi.com/block/add_link_from_extension?url=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;title=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F" title="Xerpi"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/xerpi.png" title="Xerpi" alt="Xerpi" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;submitHeadline=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F&amp;submitSummary=Singleton%20is%20the%20first%20pattern%20I%20learned%20when%20I%20am%20a%20fresh%20programmer%2C%20it%20is%20impressed%20to%20me%20at%20that%20time%20due%20to%20it%20is%20easy%20to%20learn.%20Years%20by%20years%2C%20I%20have%20learned%20many%20variances%20of%20this%20pattern%20through%20how%20to%20apply%20lazy%20loading%20the%20static%20instance%20&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="YahooMyWeb"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="YahooMyWeb" alt="YahooMyWeb" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://yigg.de/neu?exturl=http%3A%2F%2Fblog.esofthead.com%2Fsingleton-is-it-a-false-pattern%2F&amp;exttitle=Singleton%2C%20is%20it%20a%20false%20pattern%20%3F" title="Yigg"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/yiggit.png" title="Yigg" alt="Yigg" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://blog.esofthead.com/singleton-is-it-a-false-pattern/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
