<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"
	>
<channel>
	<title>Comments on: ActionScript 3.0 Builder Design Pattern Part I: Controlling Creation</title>
	<atom:link href="http://www.as3dp.com/2009/03/17/actionscript-30-builder-design-pattern-part-i-controlling-creation/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.as3dp.com/2009/03/17/actionscript-30-builder-design-pattern-part-i-controlling-creation/</link>
	<description>OOP Techniques for Flash and Flex Developers</description>
	<lastBuildDate>Mon, 26 Jul 2010 13:40:37 -0700</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: William B. Sanders</title>
		<link>http://www.as3dp.com/2009/03/17/actionscript-30-builder-design-pattern-part-i-controlling-creation/comment-page-1/#comment-4358</link>
		<dc:creator>William B. Sanders</dc:creator>
		<pubDate>Wed, 05 May 2010 20:43:06 +0000</pubDate>
		<guid isPermaLink="false">http://www.as3dp.com/?p=816#comment-4358</guid>
		<description>Hi Nambu,

We&#039;re not going for simpler building. We&#039;re going for simpler maintenance. By removing the Director what do you do? You tighten the coupling! We&#039;ve been talking about that all the time on this blog. If you take shortcuts, you pay for it in the long run. Take a look at the principle of &lt;a href=&quot;http://www.as3dp.com/2009/03/12/design-pattern-principles-for-actionscript-30-loose-coupling/&quot; rel=&quot;nofollow&quot;&gt;Loose Coupling&lt;/a&gt; and the post on &lt;a href=&quot;http://www.as3dp.com/2009/08/21/tight-coding-and-loose-coupling/&quot; rel=&quot;nofollow&quot;&gt;Tight and Loose Programmers&lt;/a&gt;. Remember; we&#039;re not worried about running out of silicon. We&#039;re worried about taking way too many resources, time and bug by tight coupling.

Kindest regards,
Bill</description>
		<content:encoded><![CDATA[<p>Hi Nambu,</p>
<p>We&#8217;re not going for simpler building. We&#8217;re going for simpler maintenance. By removing the Director what do you do? You tighten the coupling! We&#8217;ve been talking about that all the time on this blog. If you take shortcuts, you pay for it in the long run. Take a look at the principle of <a href="http://www.as3dp.com/2009/03/12/design-pattern-principles-for-actionscript-30-loose-coupling/" rel="nofollow">Loose Coupling</a> and the post on <a href="http://www.as3dp.com/2009/08/21/tight-coding-and-loose-coupling/" rel="nofollow">Tight and Loose Programmers</a>. Remember; we&#8217;re not worried about running out of silicon. We&#8217;re worried about taking way too many resources, time and bug by tight coupling.</p>
<p>Kindest regards,<br />
Bill</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nambu</title>
		<link>http://www.as3dp.com/2009/03/17/actionscript-30-builder-design-pattern-part-i-controlling-creation/comment-page-1/#comment-4355</link>
		<dc:creator>Nambu</dc:creator>
		<pubDate>Wed, 05 May 2010 18:46:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.as3dp.com/?p=816#comment-4355</guid>
		<description>The Builder pattern would be simpler to implement if the director and builder were combined into one class. What advantages do we gain by keeping them separate?</description>
		<content:encoded><![CDATA[<p>The Builder pattern would be simpler to implement if the director and builder were combined into one class. What advantages do we gain by keeping them separate?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: localToGlobal &#187; Blog Archive &#187; news review -&#62; 12th week of 2009</title>
		<link>http://www.as3dp.com/2009/03/17/actionscript-30-builder-design-pattern-part-i-controlling-creation/comment-page-1/#comment-1837</link>
		<dc:creator>localToGlobal &#187; Blog Archive &#187; news review -&#62; 12th week of 2009</dc:creator>
		<pubDate>Fri, 20 Mar 2009 16:57:57 +0000</pubDate>
		<guid isPermaLink="false">http://www.as3dp.com/?p=816#comment-1837</guid>
		<description>[...] &gt; Builder Design Pattern Part I: Controlling Creation &#124; ActionScript 3 Design Patterns [...]</description>
		<content:encoded><![CDATA[<p>[...] &gt; Builder Design Pattern Part I: Controlling Creation | ActionScript 3 Design Patterns [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: William B. Sanders</title>
		<link>http://www.as3dp.com/2009/03/17/actionscript-30-builder-design-pattern-part-i-controlling-creation/comment-page-1/#comment-1814</link>
		<dc:creator>William B. Sanders</dc:creator>
		<pubDate>Tue, 17 Mar 2009 22:32:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.as3dp.com/?p=816#comment-1814</guid>
		<description>Hi David,

It may be a while before I can get to Part II of the Builder because I have a new client who is going to keep me busy with a custom streaming Flash Media Server video project. (Of course I plan to use Design Patterns!)

As for listings that you need not scroll, just click the upper left corner &lt;strong&gt;View Code&lt;/strong&gt; hot spot of the listing and a new window opens with all of the code nice and spread out. I don&#039;t like listings that you have to scroll either!!

Cheers,
Bill</description>
		<content:encoded><![CDATA[<p>Hi David,</p>
<p>It may be a while before I can get to Part II of the Builder because I have a new client who is going to keep me busy with a custom streaming Flash Media Server video project. (Of course I plan to use Design Patterns!)</p>
<p>As for listings that you need not scroll, just click the upper left corner <strong>View Code</strong> hot spot of the listing and a new window opens with all of the code nice and spread out. I don&#8217;t like listings that you have to scroll either!!</p>
<p>Cheers,<br />
Bill</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: William B. Sanders</title>
		<link>http://www.as3dp.com/2009/03/17/actionscript-30-builder-design-pattern-part-i-controlling-creation/comment-page-1/#comment-1813</link>
		<dc:creator>William B. Sanders</dc:creator>
		<pubDate>Tue, 17 Mar 2009 22:28:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.as3dp.com/?p=816#comment-1813</guid>
		<description>Hi Dan,

Given what changes (how a composite object gets created), it was a bit trickier than most; and so it&#039;s not a surprise the Builder was elusive to you. (Took us a while too--it&#039;s the last design pattern that Chandiam and I covered in ActionScript 3.0--on the blog and in the book.)

Where classes contain other classes, we&#039;re dealing with tight coupling and that&#039;s going to be a problem throughout. I think you probably mean where classes contain &lt;em&gt;interfaces&lt;/em&gt; from other classes. Also, the Builder has aggregate relations between the Director and Builder, and it seems that the Client has aggregate relations with just about every other class! So, I would not worry about dealing with classes containing other classes if you mean they hold a common interface. Keep in mind that you don&#039;t want to subclass a concrete class -- remember the Liskov Substitution principle. Use those Lunch Bucket principles to help keep you out of trouble. (I certainly have to.)

So to answer your question, work with those 10 principles. What would they suggest? Then, when you work out your solution send it to us!! However, not to leave you hanging, &lt;strong&gt;you can have as many Product classes as you have concrete builders&lt;/strong&gt;. So consider what type of product you want and build a Product class for that product. I just used one Product class, but it makes perfect sense to have as many as you have products to build. (In their example, GoF has 3 product classes.)

Kindest regards,
Bill</description>
		<content:encoded><![CDATA[<p>Hi Dan,</p>
<p>Given what changes (how a composite object gets created), it was a bit trickier than most; and so it&#8217;s not a surprise the Builder was elusive to you. (Took us a while too&#8211;it&#8217;s the last design pattern that Chandiam and I covered in ActionScript 3.0&#8211;on the blog and in the book.)</p>
<p>Where classes contain other classes, we&#8217;re dealing with tight coupling and that&#8217;s going to be a problem throughout. I think you probably mean where classes contain <em>interfaces</em> from other classes. Also, the Builder has aggregate relations between the Director and Builder, and it seems that the Client has aggregate relations with just about every other class! So, I would not worry about dealing with classes containing other classes if you mean they hold a common interface. Keep in mind that you don&#8217;t want to subclass a concrete class &#8212; remember the Liskov Substitution principle. Use those Lunch Bucket principles to help keep you out of trouble. (I certainly have to.)</p>
<p>So to answer your question, work with those 10 principles. What would they suggest? Then, when you work out your solution send it to us!! However, not to leave you hanging, <strong>you can have as many Product classes as you have concrete builders</strong>. So consider what type of product you want and build a Product class for that product. I just used one Product class, but it makes perfect sense to have as many as you have products to build. (In their example, GoF has 3 product classes.)</p>
<p>Kindest regards,<br />
Bill</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Wilhelm</title>
		<link>http://www.as3dp.com/2009/03/17/actionscript-30-builder-design-pattern-part-i-controlling-creation/comment-page-1/#comment-1812</link>
		<dc:creator>David Wilhelm</dc:creator>
		<pubDate>Tue, 17 Mar 2009 21:18:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.as3dp.com/?p=816#comment-1812</guid>
		<description>Looking forward to the sequel... ps. It would be nice if we could read all the code examples without scrolling horizontally.</description>
		<content:encoded><![CDATA[<p>Looking forward to the sequel&#8230; ps. It would be nice if we could read all the code examples without scrolling horizontally.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dan Schultz</title>
		<link>http://www.as3dp.com/2009/03/17/actionscript-30-builder-design-pattern-part-i-controlling-creation/comment-page-1/#comment-1811</link>
		<dc:creator>Dan Schultz</dc:creator>
		<pubDate>Tue, 17 Mar 2009 20:38:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.as3dp.com/?p=816#comment-1811</guid>
		<description>Thanks for doing a write up on this. For whatever reason, this pattern has somehow always eluded me.

What tips do you have for building complex composition of objects, where classes contain other classes. Using your example above, what if the buildHotel() method needed to create a Hotel object? Would that method contain another builder to create the hotel for the product? Or would that be a poor approach?</description>
		<content:encoded><![CDATA[<p>Thanks for doing a write up on this. For whatever reason, this pattern has somehow always eluded me.</p>
<p>What tips do you have for building complex composition of objects, where classes contain other classes. Using your example above, what if the buildHotel() method needed to create a Hotel object? Would that method contain another builder to create the hotel for the product? Or would that be a poor approach?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
