<?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>Chaotic Java &#187; Design Patterns</title>
	<atom:link href="http://chaoticjava.com/posts/category/code/design-patterns/feed/" rel="self" type="application/rss+xml" />
	<link>http://chaoticjava.com</link>
	<description>The internet, design patterns, frameworks and Java</description>
	<lastBuildDate>Fri, 23 Jul 2010 17:09:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>IO performance &#8211; Tar vs. File vs. Byte streams</title>
		<link>http://chaoticjava.com/posts/io-performance-tar-file-bytes/</link>
		<comments>http://chaoticjava.com/posts/io-performance-tar-file-bytes/#comments</comments>
		<pubDate>Sat, 06 Dec 2008 23:12:48 +0000</pubDate>
		<dc:creator>Aviad</dc:creator>
				<category><![CDATA[Design Patterns]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[io]]></category>

		<guid isPermaLink="false">http://chaoticjava.com/?p=240</guid>
		<description><![CDATA[<script type="text/javascript">dzone_url = "http://chaoticjava.com/posts/io-performance-tar-file-bytes/";</script>One of the most classic patterns in software is the producer-consumer pattern. There is a module producing data, and a module reading it for further processing. Moreover, in order to achieve better performance, usually there are many consumer modules running on many different threads while the producer (or several producers) run on its own thread. [...]]]></description>
		<wfw:commentRss>http://chaoticjava.com/posts/io-performance-tar-file-bytes/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Functors in Java and beyond</title>
		<link>http://chaoticjava.com/posts/functors-in-java-and-beyond/</link>
		<comments>http://chaoticjava.com/posts/functors-in-java-and-beyond/#comments</comments>
		<pubDate>Tue, 26 Feb 2008 06:23:13 +0000</pubDate>
		<dc:creator>Aviad</dc:creator>
				<category><![CDATA[Design Patterns]]></category>
		<category><![CDATA[Framework Development]]></category>

		<guid isPermaLink="false">http://chaoticjava.com/posts/functors-in-java-and-beyond/</guid>
		<description><![CDATA[<script type="text/javascript">dzone_url = "http://chaoticjava.com/posts/functors-in-java-and-beyond/";</script>Functors are defined as a function encapsulated in an object. In most cases, the functionâ€™s parameters can be set and the result retrieved using the common accessor pattern, such as setParameter1(Object value) or getResult(). The fact that these functions are encapsulated by real objects is also the reason for its greatest benefit: the use of [...]]]></description>
		<wfw:commentRss>http://chaoticjava.com/posts/functors-in-java-and-beyond/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Know your streams</title>
		<link>http://chaoticjava.com/posts/know-your-streams/</link>
		<comments>http://chaoticjava.com/posts/know-your-streams/#comments</comments>
		<pubDate>Sat, 22 Dec 2007 08:21:59 +0000</pubDate>
		<dc:creator>Aviad</dc:creator>
				<category><![CDATA[Design Patterns]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://chaoticjava.com/posts/know-your-streams/</guid>
		<description><![CDATA[<script type="text/javascript">dzone_url = "http://chaoticjava.com/posts/know-your-streams/";</script>Isnâ€™t it about time we got to know the different stream classes a bit better? We use them in almost every project, but what do they mean? How should can we use them more efficiently? And what is the difference between a Reader and an InputStream anyway? I hope Iâ€™ll manage to give the answers [...]]]></description>
		<wfw:commentRss>http://chaoticjava.com/posts/know-your-streams/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Predicated Collections</title>
		<link>http://chaoticjava.com/posts/predicated-collections/</link>
		<comments>http://chaoticjava.com/posts/predicated-collections/#comments</comments>
		<pubDate>Sat, 01 Apr 2006 08:09:01 +0000</pubDate>
		<dc:creator>Aviad</dc:creator>
				<category><![CDATA[Design Patterns]]></category>
		<category><![CDATA[X2J]]></category>

		<guid isPermaLink="false">http://chaoticjava.com/posts/predicated-collections/</guid>
		<description><![CDATA[<script type="text/javascript">dzone_url = "http://chaoticjava.com/posts/predicated-collections/";</script>In my project, Xml2Java, I had need for a code that checks reflection information, specifically methods and fields, and operates on relevant ones. For example, I wanted the code that analyses the elements and attributes of a complex element to work only on getter methods, that is, methods that begin with &#8220;get&#8221; or &#8220;is&#8221; and [...]]]></description>
		<wfw:commentRss>http://chaoticjava.com/posts/predicated-collections/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Whirling around Java</title>
		<link>http://chaoticjava.com/posts/whirling-around-java/</link>
		<comments>http://chaoticjava.com/posts/whirling-around-java/#comments</comments>
		<pubDate>Tue, 07 Mar 2006 12:58:36 +0000</pubDate>
		<dc:creator>Aviad</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Design Patterns]]></category>

		<guid isPermaLink="false">http://chaoticjava.com/posts/whirling-around-java/</guid>
		<description><![CDATA[<script type="text/javascript">dzone_url = "http://chaoticjava.com/posts/whirling-around-java/";</script>About a month ago Roman Strobl mentioned the Whirl programming language on his blog, along with some other eccentric programming languages by the same author, Sean. Whirl is an odd programming language, reminding me a mutation of the accursed Enigma machine. It uses two wheel of 12 operation each, which the language&#8217;s operators rotate and [...]]]></description>
		<wfw:commentRss>http://chaoticjava.com/posts/whirling-around-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Event listener registrations</title>
		<link>http://chaoticjava.com/posts/event-listener-registrations/</link>
		<comments>http://chaoticjava.com/posts/event-listener-registrations/#comments</comments>
		<pubDate>Mon, 13 Feb 2006 00:03:35 +0000</pubDate>
		<dc:creator>Aviad</dc:creator>
				<category><![CDATA[Design Patterns]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://javachaos.crazyredpanda.com/?p=128</guid>
		<description><![CDATA[<script type="text/javascript">dzone_url = "http://chaoticjava.com/posts/event-listener-registrations/";</script>Almost in any application, even the simplest one, we&#8217;ll encounter a use for events. Events follow the Observer-Observable design pattern. However, how should this be implemented? Clearly, the simplest solution is the following: public interface MyEventListener { void performMyEvent(MyClass sender); } public class MyClass { private Collection&#60;MyEventListener&#62; listeners; public void addMyEventListener(MyEventListener l) { listeners.add(l); } [...]]]></description>
		<wfw:commentRss>http://chaoticjava.com/posts/event-listener-registrations/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>When Generics gets in the way</title>
		<link>http://chaoticjava.com/posts/when-generics-gets-in-the-way/</link>
		<comments>http://chaoticjava.com/posts/when-generics-gets-in-the-way/#comments</comments>
		<pubDate>Sat, 11 Feb 2006 18:15:39 +0000</pubDate>
		<dc:creator>Aviad</dc:creator>
				<category><![CDATA[Design Patterns]]></category>
		<category><![CDATA[Tiger]]></category>

		<guid isPermaLink="false">http://javachaos.crazyredpanda.com/?p=126</guid>
		<description><![CDATA[<script type="text/javascript">dzone_url = "http://chaoticjava.com/posts/when-generics-gets-in-the-way/";</script>I&#8217;ve read Egypt Java Experts&#8217; post about generics tips and even though I agree with the author&#8217;s claim that the generics feature make for a better API design, sometimes it&#8217;s just an overkill for the framework you&#8217;re designing. I will take hplusplus&#8217; example AbstractProtocolFactory and HttpProtocolFactory and hope s/he won&#8217;t mind. These classes were declared [...]]]></description>
		<wfw:commentRss>http://chaoticjava.com/posts/when-generics-gets-in-the-way/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>&#8230; And what about SealedObject and GuardedObject?</title>
		<link>http://chaoticjava.com/posts/and-what-about-sealedobject-and-guardedobject/</link>
		<comments>http://chaoticjava.com/posts/and-what-about-sealedobject-and-guardedobject/#comments</comments>
		<pubDate>Tue, 31 Jan 2006 13:44:43 +0000</pubDate>
		<dc:creator>Aviad</dc:creator>
				<category><![CDATA[Design Patterns]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://javachaos.crazyredpanda.com/?p=112</guid>
		<description><![CDATA[<script type="text/javascript">dzone_url = "http://chaoticjava.com/posts/and-what-about-sealedobject-and-guardedobject/";</script>With the switch to Generics in Java 5.0, I wasn&#8217;t at all surprised to find Reference and ThreadLocal classes switched to a generified version where their get() methods return T. Code just looks better, so it makes sense to switch these wrapper class to generified versions. But what happened to other wrapper classes, deeply rooted [...]]]></description>
		<wfw:commentRss>http://chaoticjava.com/posts/and-what-about-sealedobject-and-guardedobject/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>New project coming up</title>
		<link>http://chaoticjava.com/posts/new-project-coming-up/</link>
		<comments>http://chaoticjava.com/posts/new-project-coming-up/#comments</comments>
		<pubDate>Sat, 14 Jan 2006 07:40:21 +0000</pubDate>
		<dc:creator>Aviad</dc:creator>
				<category><![CDATA[Design Patterns]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://javachaos.crazyredpanda.com/?p=85</guid>
		<description><![CDATA[<script type="text/javascript">dzone_url = "http://chaoticjava.com/posts/new-project-coming-up/";</script>No, I haven&#8217;t put X2J aside. I can tell you that in just a few minutes I will open up IDEA and the X2J project and continue writing some code into it. Hopefully a release will be out soon for all of you to download (Even more hopefully you will actually download it..) That said, [...]]]></description>
		<wfw:commentRss>http://chaoticjava.com/posts/new-project-coming-up/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using the Mould</title>
		<link>http://chaoticjava.com/posts/using-the-mould/</link>
		<comments>http://chaoticjava.com/posts/using-the-mould/#comments</comments>
		<pubDate>Mon, 02 Jan 2006 06:22:00 +0000</pubDate>
		<dc:creator>Aviad</dc:creator>
				<category><![CDATA[Design Patterns]]></category>
		<category><![CDATA[X2J]]></category>

		<guid isPermaLink="false">http://javachaos.crazyredpanda.com/?p=60</guid>
		<description><![CDATA[<script type="text/javascript">dzone_url = "http://chaoticjava.com/posts/using-the-mould/";</script>Lately I&#8217;ve realised that the Analyser code in X2J is messy, and wanted to treat it to a better design. For those numerous people out there who do not know the X2J code (yet!), I will offer some explanation: The Analyser&#8217;s task in X2J is to take a Plain Old Java Object (POJO) and analyse [...]]]></description>
		<wfw:commentRss>http://chaoticjava.com/posts/using-the-mould/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
