<?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>Pedro Teixeira</title>
	<atom:link href="http://www.pedropt.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.pedropt.com/blog</link>
	<description>Versão Beta 1</description>
	<lastBuildDate>Mon, 08 Mar 2010 20:48:49 +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>Design Patterns using Action Script 3: Structural Patterns (Decorator &amp; Adapter &amp; Composite)</title>
		<link>http://www.pedropt.com/blog/2010/03/08/design-patterns-using-action-script-3-structural-patterns-decorator-adapter-composite/</link>
		<comments>http://www.pedropt.com/blog/2010/03/08/design-patterns-using-action-script-3-structural-patterns-decorator-adapter-composite/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 20:48:49 +0000</pubDate>
		<dc:creator>Pedro</dc:creator>
				<category><![CDATA[Programação]]></category>
		<category><![CDATA[Software Patterns]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[Action Script]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://www.pedropt.com/blog/?p=104</guid>
		<description><![CDATA[Decorator Example related in book, that shows use of Decorator Pattern. It´s used when necessary to choose many properties dynamically like the sum of shopping cart products. File Component.as: File Decorator.as: File ConcreteComponent.as: File DecConA.as: File DecConB.as: File DecTest.as: Adapter Example related in book, that shows use of Adapter Pattern. This pattern allows existing classes [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-size: large;"><strong>Decorator</strong></span></p>
<p style="text-align: justify;">Example related in book, that shows use of Decorator Pattern. It´s used when necessary to choose many properties dynamically like the sum of shopping cart products.</p>
<p>File <strong>Component.as</strong>:</p>
<div id="wpshdo_1" class="wp-synhighlighter-outer"><div id="wpshdt_1" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_1"></a><a id="wpshat_1" class="wp-synhighlighter-title" href="#codesyntax_1"  onClick="javascript:wpsh_toggleBlock(1)" title="Click to show/hide code block">Code block</a></td><td align="right"><a href="#codesyntax_1" onClick="javascript:wpsh_code(1)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_1" onClick="javascript:wpsh_print(1)" title="Print code"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_1" class="wp-synhighlighter-inner" style="display: block;"><pre class="actionscript3" style="font-family:monospace;"><span class="kw4">package</span>
<span class="br0">&#123;</span>
    <span class="co1">//Abstract Component in Decorator Design Pattern</span>
    <span class="co1">//**************</span>
    <span class="co1">//Abstract class</span>
    <span class="kw1">public</span> <span class="kw4">class</span> Component
    <span class="br0">&#123;</span>
    	<span class="kw1">internal</span> <span class="kw2">var</span> information<span class="sy0">:</span><a href="http://www.google.com/search?q=string%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:string.html"><span class="kw5">String</span></a><span class="sy0">;</span>
        <span class="kw1">public</span> <span class="kw3">function</span> getInformation<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">:</span><a href="http://www.google.com/search?q=string%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:string.html"><span class="kw5">String</span></a>
	<span class="br0">&#123;</span>
	    <span class="kw1">return</span> information<span class="sy0">;</span>
	<span class="br0">&#125;</span>
    <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></div></div>
<p>File <strong>Decorator.as</strong>:</p>
<div id="wpshdo_2" class="wp-synhighlighter-outer"><div id="wpshdt_2" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_2"></a><a id="wpshat_2" class="wp-synhighlighter-title" href="#codesyntax_2"  onClick="javascript:wpsh_toggleBlock(2)" title="Click to show/hide code block">Code block</a></td><td align="right"><a href="#codesyntax_2" onClick="javascript:wpsh_code(2)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_2" onClick="javascript:wpsh_print(2)" title="Print code"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_2" class="wp-synhighlighter-inner" style="display: block;"><pre class="actionscript3" style="font-family:monospace;"><span class="kw4">package</span>
<span class="br0">&#123;</span>
    <span class="co1">//Abstract Decorator in Decorator Design Pattern</span>
    <span class="co1">//**************</span>
    <span class="co1">//Abstract class</span>
    <span class="kw1">public</span> <span class="kw4">class</span> Decorator <span class="kw1">extends</span> Component
    <span class="br0">&#123;</span>
	<span class="kw7">trace</span><span class="br0">&#40;</span><span class="st0">&quot;|*|Decorator|*|&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
	override <span class="kw1">public</span> <span class="kw3">function</span> getInformation<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">:</span><a href="http://www.google.com/search?q=string%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:string.html"><span class="kw5">String</span></a>
	<span class="br0">&#123;</span>
            <span class="kw1">return</span> information<span class="sy0">;</span>
	<span class="br0">&#125;</span>
    <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></div></div>
<p>File <strong>ConcreteComponent.as</strong>:</p>
<div id="wpshdo_3" class="wp-synhighlighter-outer"><div id="wpshdt_3" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_3"></a><a id="wpshat_3" class="wp-synhighlighter-title" href="#codesyntax_3"  onClick="javascript:wpsh_toggleBlock(3)" title="Click to show/hide code block">Code block</a></td><td align="right"><a href="#codesyntax_3" onClick="javascript:wpsh_code(3)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_3" onClick="javascript:wpsh_print(3)" title="Print code"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_3" class="wp-synhighlighter-inner" style="display: block;"><pre class="actionscript3" style="font-family:monospace;"><span class="kw4">package</span>
<span class="br0">&#123;</span>
    <span class="co1">//Concrete Component</span>
    <span class="kw1">public</span> <span class="kw4">class</span> ConcreteComponent <span class="kw1">extends</span> Component
    <span class="br0">&#123;</span>
	<span class="kw1">public</span> <span class="kw3">function</span> ConcreteComponent<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">:</span><span class="kw1">void</span>
	<span class="br0">&#123;</span>
            <span class="co1">//\u2794 is Unicode for a right-pointing arrow</span>
	    information = <span class="st0">&quot;Concete Component is decorated with <span class="es0">\u</span>2794&quot;</span><span class="sy0">;</span>
	<span class="br0">&#125;</span>
    <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></div></div>
<p>File <strong>DecConA.as</strong>:</p>
<div id="wpshdo_4" class="wp-synhighlighter-outer"><div id="wpshdt_4" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_4"></a><a id="wpshat_4" class="wp-synhighlighter-title" href="#codesyntax_4"  onClick="javascript:wpsh_toggleBlock(4)" title="Click to show/hide code block">Code block</a></td><td align="right"><a href="#codesyntax_4" onClick="javascript:wpsh_code(4)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_4" onClick="javascript:wpsh_print(4)" title="Print code"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_4" class="wp-synhighlighter-inner" style="display: block;"><pre class="actionscript3" style="font-family:monospace;"><span class="kw4">package</span>
<span class="br0">&#123;</span>
    <span class="co1">//Concrete Decorator &quot;Alpha&quot;</span>
    <span class="kw1">public</span> <span class="kw4">class</span> DecConA <span class="kw1">extends</span> Decorator
    <span class="br0">&#123;</span>
	<span class="kw2">var</span> components<span class="sy0">:</span>Component<span class="sy0">;</span>
	<span class="kw1">public</span> <span class="kw3">function</span> DecConA<span class="br0">&#40;</span>components<span class="sy0">:</span>Component<span class="br0">&#41;</span>
	<span class="br0">&#123;</span>
	    <span class="kw1">this</span><span class="sy0">.</span>components=components<span class="sy0">;</span>
	<span class="br0">&#125;</span>
	override <span class="kw1">public</span> <span class="kw3">function</span> getInformation<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">:</span><a href="http://www.google.com/search?q=string%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:string.html"><span class="kw5">String</span></a>
	<span class="br0">&#123;</span>
	    <span class="kw1">return</span> components<span class="sy0">.</span>getInformation<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="sy0">+</span> <span class="st0">&quot; Decoration Alpha:&quot;</span><span class="sy0">;</span>
	<span class="br0">&#125;</span>
    <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></div></div>
<p>File <strong>DecConB.as</strong>:</p>
<div id="wpshdo_5" class="wp-synhighlighter-outer"><div id="wpshdt_5" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_5"></a><a id="wpshat_5" class="wp-synhighlighter-title" href="#codesyntax_5"  onClick="javascript:wpsh_toggleBlock(5)" title="Click to show/hide code block">Code block</a></td><td align="right"><a href="#codesyntax_5" onClick="javascript:wpsh_code(5)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_5" onClick="javascript:wpsh_print(5)" title="Print code"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_5" class="wp-synhighlighter-inner" style="display: block;"><pre class="actionscript3" style="font-family:monospace;"><span class="kw4">package</span>
<span class="br0">&#123;</span>
    <span class="co1">//Concrete Decorator &quot;Beta&quot;</span>
    <span class="kw1">public</span> <span class="kw4">class</span> DecConB <span class="kw1">extends</span> Decorator
    <span class="br0">&#123;</span>
	<span class="kw2">var</span> components<span class="sy0">:</span>Component<span class="sy0">;</span>
	<span class="kw1">public</span> <span class="kw3">function</span> DecConB<span class="br0">&#40;</span>components<span class="sy0">:</span>Component<span class="br0">&#41;</span><span class="sy0">:</span><span class="kw1">void</span>
	<span class="br0">&#123;</span>
	    <span class="kw1">this</span><span class="sy0">.</span>components=components<span class="sy0">;</span>
	<span class="br0">&#125;</span>
	override <span class="kw1">public</span> <span class="kw3">function</span> getInformation<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">:</span><a href="http://www.google.com/search?q=string%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:string.html"><span class="kw5">String</span></a>
	<span class="br0">&#123;</span>
	    <span class="kw1">return</span> components<span class="sy0">.</span>getInformation<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="sy0">+</span> <span class="st0">&quot; Decoration Beta:&quot;</span><span class="sy0">;</span>
	<span class="br0">&#125;</span>
    <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></div></div>
<p>File <strong>DecTest.as</strong>:</p>
<div id="wpshdo_6" class="wp-synhighlighter-outer"><div id="wpshdt_6" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_6"></a><a id="wpshat_6" class="wp-synhighlighter-title" href="#codesyntax_6"  onClick="javascript:wpsh_toggleBlock(6)" title="Click to show/hide code block">Code block</a></td><td align="right"><a href="#codesyntax_6" onClick="javascript:wpsh_code(6)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_6" onClick="javascript:wpsh_print(6)" title="Print code"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_6" class="wp-synhighlighter-inner" style="display: block;"><pre class="actionscript3" style="font-family:monospace;"><span class="kw4">package</span>
<span class="br0">&#123;</span>
    <span class="kw1">import</span> <span class="kw6">flash.display</span><span class="sy0">.</span><a href="http://www.google.com/search?q=sprite%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:sprite.html"><span class="kw5">Sprite</span></a><span class="sy0">;</span>
    <span class="kw1">public</span> <span class="kw4">class</span> DecTest <span class="kw1">extends</span> <a href="http://www.google.com/search?q=sprite%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:sprite.html"><span class="kw5">Sprite</span></a>
    <span class="br0">&#123;</span>
	<span class="kw1">public</span> <span class="kw3">function</span> DecTest<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">:</span><span class="kw1">void</span>
	<span class="br0">&#123;</span>
	    <span class="co1">//Instantiate Concrete Component</span>
	    <span class="kw2">var</span> testComponent<span class="sy0">:</span>Component = <span class="kw1">new</span> ConcreteComponent<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
	    <span class="co1">//Wrap first decorator around component</span>
	    testComponent=<span class="kw1">new</span> DecConA<span class="br0">&#40;</span>testComponent<span class="br0">&#41;</span><span class="sy0">;</span>
	    <span class="co1">//Wrap second decorator around component</span>
	    testComponent=<span class="kw1">new</span> DecConB<span class="br0">&#40;</span>testComponent<span class="br0">&#41;</span><span class="sy0">;</span>
	    <span class="co1">//Output results</span>
	    <span class="kw7">trace</span><span class="br0">&#40;</span>testComponent<span class="sy0">.</span>getInformation<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
	<span class="br0">&#125;</span>
    <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></div></div>
<p><span style="font-size: large;"><strong>Adapter</strong></span></p>
<p style="text-align: justify;">Example related in book, that shows use of Adapter Pattern. This pattern allows existing classes to be used in situations that didn´t exist or weren´t anticipated when they were developed.</p>
<p>File <strong>Adaptee.as</strong>:</p>
<div id="wpshdo_7" class="wp-synhighlighter-outer"><div id="wpshdt_7" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_7"></a><a id="wpshat_7" class="wp-synhighlighter-title" href="#codesyntax_7"  onClick="javascript:wpsh_toggleBlock(7)" title="Click to show/hide code block">Code block</a></td><td align="right"><a href="#codesyntax_7" onClick="javascript:wpsh_code(7)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_7" onClick="javascript:wpsh_print(7)" title="Print code"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_7" class="wp-synhighlighter-inner" style="display: block;"><pre class="actionscript3" style="font-family:monospace;"><span class="kw4">package</span> <span class="br0">&#123;</span>
&nbsp;
    <span class="kw1">public</span> <span class="kw4">class</span> Adaptee <span class="br0">&#123;</span>
&nbsp;
	<span class="kw1">public</span> <span class="kw3">function</span> specificRequest<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">:</span><span class="kw1">void</span> <span class="br0">&#123;</span>
	    <span class="kw7">trace</span><span class="br0">&#40;</span><span class="st0">&quot;Called Adaptee:specificRequest()&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
	<span class="br0">&#125;</span>
    <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></div></div>
<p>File <strong>Itarget.as</strong>:</p>
<div id="wpshdo_8" class="wp-synhighlighter-outer"><div id="wpshdt_8" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_8"></a><a id="wpshat_8" class="wp-synhighlighter-title" href="#codesyntax_8"  onClick="javascript:wpsh_toggleBlock(8)" title="Click to show/hide code block">Code block</a></td><td align="right"><a href="#codesyntax_8" onClick="javascript:wpsh_code(8)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_8" onClick="javascript:wpsh_print(8)" title="Print code"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_8" class="wp-synhighlighter-inner" style="display: block;"><pre class="actionscript3" style="font-family:monospace;"><span class="kw4">package</span> <span class="br0">&#123;</span>
&nbsp;
    <span class="kw1">public</span> interface ITarget <span class="br0">&#123;</span>
	<span class="kw3">function</span> request<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">:</span><span class="kw1">void</span>
	<span class="kw3">function</span> newOperation<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">:</span><span class="kw1">void</span>
    <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></div></div>
<p>File <strong>Adapter.as</strong>:</p>
<div id="wpshdo_9" class="wp-synhighlighter-outer"><div id="wpshdt_9" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_9"></a><a id="wpshat_9" class="wp-synhighlighter-title" href="#codesyntax_9"  onClick="javascript:wpsh_toggleBlock(9)" title="Click to show/hide code block">Code block</a></td><td align="right"><a href="#codesyntax_9" onClick="javascript:wpsh_code(9)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_9" onClick="javascript:wpsh_print(9)" title="Print code"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_9" class="wp-synhighlighter-inner" style="display: block;"><pre class="actionscript3" style="font-family:monospace;"><span class="kw4">package</span> <span class="br0">&#123;</span>
&nbsp;
    <span class="kw1">public</span> <span class="kw4">class</span> Adapter implements ITarget <span class="br0">&#123;</span>
&nbsp;
	<span class="kw1">private</span> <span class="kw2">var</span> adaptee<span class="sy0">:</span>Adaptee<span class="sy0">;</span>
&nbsp;
	<span class="kw1">public</span> <span class="kw3">function</span> Adapter<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="co1">// constructor</span>
	    <span class="kw1">this</span><span class="sy0">.</span>adaptee = <span class="kw1">new</span> Adaptee<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
	<span class="br0">&#125;</span>
&nbsp;
	<span class="kw1">public</span> <span class="kw3">function</span> request<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">:</span><span class="kw1">void</span> <span class="br0">&#123;</span>
	    adaptee<span class="sy0">.</span>specificRequest<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
	<span class="br0">&#125;</span>
&nbsp;
	<span class="kw1">public</span> <span class="kw3">function</span> newOperation<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">:</span><span class="kw1">void</span> <span class="br0">&#123;</span>
	    <span class="kw7">trace</span><span class="br0">&#40;</span><span class="st0">&quot;Called Adapter:newOperation()&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
	<span class="br0">&#125;</span>
    <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></div></div>
<p>File <strong>Main.as</strong>:</p>
<div id="wpshdo_10" class="wp-synhighlighter-outer"><div id="wpshdt_10" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_10"></a><a id="wpshat_10" class="wp-synhighlighter-title" href="#codesyntax_10"  onClick="javascript:wpsh_toggleBlock(10)" title="Click to show/hide code block">Code block</a></td><td align="right"><a href="#codesyntax_10" onClick="javascript:wpsh_code(10)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_10" onClick="javascript:wpsh_print(10)" title="Print code"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_10" class="wp-synhighlighter-inner" style="display: block;"><pre class="actionscript3" style="font-family:monospace;"><span class="kw4">package</span> <span class="br0">&#123;</span>
&nbsp;
    <span class="kw1">import</span> <span class="kw6">flash.display</span><span class="sy0">.</span><a href="http://www.google.com/search?q=movieclip%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:movieclip.html"><span class="kw5">MovieClip</span></a><span class="sy0">;</span>
&nbsp;
    <span class="coMULTI">/**
     *	Main Class
     *	@ purpose: Document class for movie
     */</span>
    <span class="kw1">public</span> <span class="kw4">class</span> Main <span class="kw1">extends</span> <a href="http://www.google.com/search?q=movieclip%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:movieclip.html"><span class="kw5">MovieClip</span></a> <span class="br0">&#123;</span>
&nbsp;
	<span class="kw1">public</span> <span class="kw3">function</span> Main<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp;
	    <span class="kw2">var</span> <span class="kw7">target</span><span class="sy0">:</span>ITarget = <span class="kw1">new</span> Adapter<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
	    <span class="kw7">target</span><span class="sy0">.</span>request<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
	    <span class="kw7">target</span><span class="sy0">.</span>newOperation<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
	<span class="br0">&#125;</span>
    <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></div></div>
<p><span style="font-size: large;"><strong>Composite</strong></span></p>
<p style="text-align: justify;">Example  related in book, that shows use of Composite Pattern. The Composite Pattern provides a robust solution to building complex systems that are made up of several smaller components.</p>
<p>File <strong>Component.as</strong>:</p>
<div id="wpshdo_11" class="wp-synhighlighter-outer"><div id="wpshdt_11" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_11"></a><a id="wpshat_11" class="wp-synhighlighter-title" href="#codesyntax_11"  onClick="javascript:wpsh_toggleBlock(11)" title="Click to show/hide code block">Code block</a></td><td align="right"><a href="#codesyntax_11" onClick="javascript:wpsh_code(11)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_11" onClick="javascript:wpsh_print(11)" title="Print code"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_11" class="wp-synhighlighter-inner" style="display: block;"><pre class="actionscript3" style="font-family:monospace;"><span class="kw4">package</span> <span class="br0">&#123;</span>
&nbsp;
    <span class="kw1">import</span> <span class="kw6">flash.errors</span><span class="sy0">.</span><a href="http://www.google.com/search?q=illegaloperationerror%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:illegaloperationerror.html"><span class="kw5">IllegalOperationError</span></a><span class="sy0">;</span>
&nbsp;
    <span class="co1">// ABSTRACT Class (should be subclassed and not instantiated)</span>
    <span class="kw1">public</span> <span class="kw4">class</span> Component <span class="br0">&#123;</span>
&nbsp;
	<span class="kw1">protected</span> <span class="kw2">var</span> <span class="kw7">parentNode</span><span class="sy0">:</span>Composite = <span class="kw1">null</span><span class="sy0">;</span>
&nbsp;
	<span class="kw1">public</span> <span class="kw3">function</span> <span class="kw7">add</span><span class="br0">&#40;</span><span class="kw7">c</span><span class="sy0">:</span>Component<span class="br0">&#41;</span><span class="sy0">:</span><span class="kw1">void</span> <span class="br0">&#123;</span>
	    <span class="kw1">throw</span> <span class="kw1">new</span> <a href="http://www.google.com/search?q=illegaloperationerror%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:illegaloperationerror.html"><span class="kw5">IllegalOperationError</span></a><span class="br0">&#40;</span><span class="st0">&quot;add operation not supported&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
	<span class="br0">&#125;</span>
&nbsp;
	<span class="kw1">public</span> <span class="kw3">function</span> remove<span class="br0">&#40;</span><span class="kw7">c</span><span class="sy0">:</span>Component<span class="br0">&#41;</span><span class="sy0">:</span><span class="kw1">void</span> <span class="br0">&#123;</span>
	    <span class="kw1">throw</span> <span class="kw1">new</span> <a href="http://www.google.com/search?q=illegaloperationerror%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:illegaloperationerror.html"><span class="kw5">IllegalOperationError</span></a><span class="br0">&#40;</span><span class="st0">&quot;remove operation not supported&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
	<span class="br0">&#125;</span>
&nbsp;
	<span class="kw1">public</span> <span class="kw3">function</span> getChild<span class="br0">&#40;</span>n<span class="sy0">:</span><a href="http://www.google.com/search?q=int%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:int.html"><span class="kw5">int</span></a><span class="br0">&#41;</span><span class="sy0">:</span>Component <span class="br0">&#123;</span>
	    <span class="kw1">throw</span> <span class="kw1">new</span> <a href="http://www.google.com/search?q=illegaloperationerror%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:illegaloperationerror.html"><span class="kw5">IllegalOperationError</span></a><span class="br0">&#40;</span><span class="st0">&quot;getChild operation not supported&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
	    <span class="kw1">return</span> <span class="kw1">null</span><span class="sy0">;</span>
	<span class="br0">&#125;</span>
&nbsp;
	<span class="co1">// ABSTRACT Method (must be overridden in a subclass)</span>
	<span class="kw1">public</span> <span class="kw3">function</span> operation<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">:</span><span class="kw1">void</span> <span class="br0">&#123;</span>
	<span class="br0">&#125;</span>
&nbsp;
	<span class="kw1">public</span> <span class="kw3">function</span> getParent<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">:</span>Composite <span class="br0">&#123;</span>
	    <span class="kw1">return</span> <span class="kw1">this</span><span class="sy0">.</span><span class="kw7">parentNode</span><span class="sy0">;</span>
	<span class="br0">&#125;</span>
&nbsp;
	<span class="kw1">internal</span> <span class="kw3">function</span> setParent<span class="br0">&#40;</span>compositeNode<span class="sy0">:</span>Composite<span class="br0">&#41;</span><span class="sy0">:</span><span class="kw1">void</span> <span class="br0">&#123;</span>
	    <span class="kw1">this</span><span class="sy0">.</span><span class="kw7">parentNode</span> = compositeNode<span class="sy0">;</span>
	<span class="br0">&#125;</span>
&nbsp;
	<span class="kw1">internal</span> <span class="kw3">function</span> removeParentRef<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">:</span><span class="kw1">void</span> <span class="br0">&#123;</span>
	    <span class="kw1">this</span><span class="sy0">.</span><span class="kw7">parentNode</span> = <span class="kw1">null</span><span class="sy0">;</span>
	<span class="br0">&#125;</span>
&nbsp;
	<span class="kw1">internal</span> <span class="kw3">function</span> getComposite<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">:</span>Composite <span class="br0">&#123;</span>
	    <span class="kw1">return</span> <span class="kw1">null</span><span class="sy0">;</span>
	<span class="br0">&#125;</span>
&nbsp;
    <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></div></div>
<p>File <strong>Composite.as</strong>:</p>
<div id="wpshdo_12" class="wp-synhighlighter-outer"><div id="wpshdt_12" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_12"></a><a id="wpshat_12" class="wp-synhighlighter-title" href="#codesyntax_12"  onClick="javascript:wpsh_toggleBlock(12)" title="Click to show/hide code block">Code block</a></td><td align="right"><a href="#codesyntax_12" onClick="javascript:wpsh_code(12)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_12" onClick="javascript:wpsh_print(12)" title="Print code"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_12" class="wp-synhighlighter-inner" style="display: block;"><pre class="actionscript3" style="font-family:monospace;"><span class="kw4">package</span> <span class="br0">&#123;</span>
&nbsp;
    <span class="kw1">public</span> <span class="kw4">class</span> Composite <span class="kw1">extends</span> Component <span class="br0">&#123;</span>
&nbsp;
	<span class="kw1">protected</span> <span class="kw2">var</span> sName<span class="sy0">:</span><a href="http://www.google.com/search?q=string%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:string.html"><span class="kw5">String</span></a><span class="sy0">;</span>
	<span class="kw1">protected</span> <span class="kw2">var</span> aChildren<span class="sy0">:</span><a href="http://www.google.com/search?q=array%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:array.html"><span class="kw5">Array</span></a><span class="sy0">;</span>
&nbsp;
	<span class="kw1">public</span> <span class="kw3">function</span> Composite<span class="br0">&#40;</span>sName<span class="sy0">:</span><a href="http://www.google.com/search?q=string%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:string.html"><span class="kw5">String</span></a><span class="br0">&#41;</span> <span class="br0">&#123;</span>
	    <span class="kw1">this</span><span class="sy0">.</span>sName = sName<span class="sy0">;</span>
	    <span class="kw1">this</span><span class="sy0">.</span>aChildren = <span class="kw1">new</span> <a href="http://www.google.com/search?q=array%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:array.html"><span class="kw5">Array</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
	<span class="br0">&#125;</span>
&nbsp;
	override <span class="kw1">public</span> <span class="kw3">function</span> <span class="kw7">add</span><span class="br0">&#40;</span><span class="kw7">c</span><span class="sy0">:</span>Component<span class="br0">&#41;</span><span class="sy0">:</span><span class="kw1">void</span> <span class="br0">&#123;</span>
	    aChildren<span class="sy0">.</span><span class="kw7">push</span><span class="br0">&#40;</span><span class="kw7">c</span><span class="br0">&#41;</span><span class="sy0">;</span>
	    <span class="kw7">c</span><span class="sy0">.</span>setParent<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span><span class="sy0">;</span>
	<span class="br0">&#125;</span>
&nbsp;
	override <span class="kw1">public</span> <span class="kw3">function</span> operation<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">:</span><span class="kw1">void</span> <span class="br0">&#123;</span>
	    <span class="kw7">trace</span><span class="br0">&#40;</span><span class="kw1">this</span><span class="sy0">.</span>sName<span class="br0">&#41;</span><span class="sy0">;</span>
	    <span class="kw1">for</span> <span class="kw1">each</span> <span class="br0">&#40;</span><span class="kw2">var</span> <span class="kw7">c</span><span class="sy0">:</span>Component <span class="kw1">in</span> aChildren<span class="br0">&#41;</span> <span class="br0">&#123;</span>
		<span class="kw7">c</span><span class="sy0">.</span>operation<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
	    <span class="br0">&#125;</span>
	<span class="br0">&#125;</span>
&nbsp;
	override <span class="kw1">public</span> <span class="kw3">function</span> getChild<span class="br0">&#40;</span>n<span class="sy0">:</span><a href="http://www.google.com/search?q=int%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:int.html"><span class="kw5">int</span></a><span class="br0">&#41;</span><span class="sy0">:</span>Component <span class="br0">&#123;</span>
	    <span class="kw1">if</span> <span class="br0">&#40;</span><span class="br0">&#40;</span>n <span class="sy0">&gt;</span> 0<span class="br0">&#41;</span> <span class="sy0">&amp;&amp;</span> <span class="br0">&#40;</span>n <span class="sy0">&lt;</span>= aChildren<span class="sy0">.</span><span class="kw7">length</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
		<span class="kw1">return</span> aChildren<span class="br0">&#91;</span>n<span class="sy0">-</span>1<span class="br0">&#93;</span><span class="sy0">;</span>
	    <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span>
		<span class="kw1">return</span> <span class="kw1">null</span><span class="sy0">;</span>
	    <span class="br0">&#125;</span>
	<span class="br0">&#125;</span>
&nbsp;
	override <span class="kw1">internal</span> <span class="kw3">function</span> getComposite<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">:</span>Composite <span class="br0">&#123;</span>
	    <span class="kw1">return</span> <span class="kw1">this</span><span class="sy0">;</span>
	<span class="br0">&#125;</span>
&nbsp;
	<span class="kw1">private</span> <span class="kw3">function</span> safeRemove<span class="br0">&#40;</span><span class="kw7">c</span><span class="sy0">:</span>Component<span class="br0">&#41;</span> <span class="br0">&#123;</span>
	    <span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw7">c</span><span class="sy0">.</span>getComposite<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
		<span class="kw7">c</span><span class="sy0">.</span>remove<span class="br0">&#40;</span><span class="kw7">c</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">// composite</span>
	    <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span>
		<span class="kw7">c</span><span class="sy0">.</span>removeParentRef<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
	    <span class="br0">&#125;</span>
	<span class="br0">&#125;</span>
&nbsp;
	override <span class="kw1">public</span> <span class="kw3">function</span> remove<span class="br0">&#40;</span><span class="kw7">c</span><span class="sy0">:</span>Component<span class="br0">&#41;</span><span class="sy0">:</span><span class="kw1">void</span> <span class="br0">&#123;</span>
	    <span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw7">c</span> === <span class="kw1">this</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
		<span class="co1">// remove all my children</span>
		<span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw2">var</span> i<span class="sy0">:</span><a href="http://www.google.com/search?q=int%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:int.html"><span class="kw5">int</span></a> = <span class="nu0">0</span><span class="sy0">;</span> i <span class="sy0">&lt;</span> aChildren<span class="sy0">.</span><span class="kw7">length</span><span class="sy0">;</span> i<span class="sy0">++</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
		    safeRemove<span class="br0">&#40;</span>aChildren<span class="br0">&#91;</span>i<span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">// remove children</span>
		<span class="br0">&#125;</span>
		<span class="kw1">this</span><span class="sy0">.</span>aChildren = <span class="br0">&#91;</span><span class="br0">&#93;</span><span class="sy0">;</span> <span class="co1">// remove references to children</span>
		<span class="kw1">this</span><span class="sy0">.</span>removeParentRef<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">// remove my parent reference</span>
	    <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span>
		<span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw2">var</span> j<span class="sy0">:</span><a href="http://www.google.com/search?q=int%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:int.html"><span class="kw5">int</span></a> = <span class="nu0">0</span><span class="sy0">;</span> j <span class="sy0">&lt;</span> aChildren<span class="sy0">.</span><span class="kw7">length</span><span class="sy0">;</span> j<span class="sy0">++</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
		    <span class="kw1">if</span> <span class="br0">&#40;</span>aChildren<span class="br0">&#91;</span>j<span class="br0">&#93;</span> == <span class="kw7">c</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
			safeRemove<span class="br0">&#40;</span>aChildren<span class="br0">&#91;</span>j<span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">// remove child</span>
			aChildren<span class="sy0">.</span><span class="kw7">splice</span><span class="br0">&#40;</span>j<span class="sy0">,</span> 1<span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">// remove reference</span>
		    <span class="br0">&#125;</span>
		<span class="br0">&#125;</span>
	    <span class="br0">&#125;</span>
	<span class="br0">&#125;</span>
    <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></div></div>
<p>File <strong>Leaf<strong>.as</strong></strong>:</p>
<div id="wpshdo_13" class="wp-synhighlighter-outer"><div id="wpshdt_13" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_13"></a><a id="wpshat_13" class="wp-synhighlighter-title" href="#codesyntax_13"  onClick="javascript:wpsh_toggleBlock(13)" title="Click to show/hide code block">Code block</a></td><td align="right"><a href="#codesyntax_13" onClick="javascript:wpsh_code(13)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_13" onClick="javascript:wpsh_print(13)" title="Print code"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_13" class="wp-synhighlighter-inner" style="display: block;"><pre class="actionscript3" style="font-family:monospace;"><span class="kw4">package</span> <span class="br0">&#123;</span>
&nbsp;
    <span class="kw1">public</span> <span class="kw4">class</span> Leaf <span class="kw1">extends</span> Component <span class="br0">&#123;</span>
&nbsp;
	<span class="kw1">private</span> <span class="kw2">var</span> sName<span class="sy0">:</span><a href="http://www.google.com/search?q=string%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:string.html"><span class="kw5">String</span></a><span class="sy0">;</span>
&nbsp;
	<span class="kw1">public</span> <span class="kw3">function</span> Leaf<span class="br0">&#40;</span>sName<span class="sy0">:</span><a href="http://www.google.com/search?q=string%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:string.html"><span class="kw5">String</span></a><span class="br0">&#41;</span> <span class="br0">&#123;</span>
	    <span class="kw1">this</span><span class="sy0">.</span>sName = sName<span class="sy0">;</span>
	<span class="br0">&#125;</span>
&nbsp;
	override <span class="kw1">public</span> <span class="kw3">function</span> operation<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">:</span><span class="kw1">void</span> <span class="br0">&#123;</span>
	    <span class="kw7">trace</span><span class="br0">&#40;</span><span class="kw1">this</span><span class="sy0">.</span>sName<span class="br0">&#41;</span><span class="sy0">;</span>
	<span class="br0">&#125;</span>
    <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></div></div>
<p>File <strong>Main.as</strong>:</p>
<div id="wpshdo_14" class="wp-synhighlighter-outer"><div id="wpshdt_14" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_14"></a><a id="wpshat_14" class="wp-synhighlighter-title" href="#codesyntax_14"  onClick="javascript:wpsh_toggleBlock(14)" title="Click to show/hide code block">Code block</a></td><td align="right"><a href="#codesyntax_14" onClick="javascript:wpsh_code(14)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_14" onClick="javascript:wpsh_print(14)" title="Print code"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_14" class="wp-synhighlighter-inner" style="display: block;"><pre class="actionscript3" style="font-family:monospace;"><span class="kw4">package</span> <span class="br0">&#123;</span>
&nbsp;
    <span class="kw1">import</span> <span class="kw6">flash.display</span><span class="sy0">.</span><a href="http://www.google.com/search?q=movieclip%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:movieclip.html"><span class="kw5">MovieClip</span></a><span class="sy0">;</span>
&nbsp;
    <span class="coMULTI">/**
     *	Main Class
     *	@ purpose:		Document class for movie
     */</span>
    <span class="kw1">public</span> <span class="kw4">class</span> Main <span class="kw1">extends</span> <a href="http://www.google.com/search?q=movieclip%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:movieclip.html"><span class="kw5">MovieClip</span></a> <span class="br0">&#123;</span>
&nbsp;
	<span class="kw1">public</span> <span class="kw3">function</span> Main<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp;
	<span class="co1">// create root node</span>
	<span class="kw2">var</span> <span class="kw7">root</span><span class="sy0">:</span>Composite = <span class="kw1">new</span> Composite<span class="br0">&#40;</span><span class="st0">&quot;root&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>  
&nbsp;
	<span class="co1">// add a node to root</span>
	<span class="kw7">root</span><span class="sy0">.</span><span class="kw7">add</span><span class="br0">&#40;</span><span class="kw1">new</span> Composite<span class="br0">&#40;</span><span class="st0">&quot;composite 1&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">// add node to root as child</span>
	<span class="kw7">root</span><span class="sy0">.</span>getChild<span class="br0">&#40;</span>1<span class="br0">&#41;</span><span class="sy0">.</span><span class="kw7">add</span><span class="br0">&#40;</span><span class="kw1">new</span> Leaf<span class="br0">&#40;</span><span class="st0">&quot;leaf 1&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">// add a child leaf</span>
	<span class="kw7">root</span><span class="sy0">.</span>getChild<span class="br0">&#40;</span>1<span class="br0">&#41;</span><span class="sy0">.</span><span class="kw7">add</span><span class="br0">&#40;</span><span class="kw1">new</span> Leaf<span class="br0">&#40;</span><span class="st0">&quot;leaf 2&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">// add a child leaf</span>
&nbsp;
	<span class="co1">// add another node</span>
	<span class="kw7">root</span><span class="sy0">.</span><span class="kw7">add</span><span class="br0">&#40;</span><span class="kw1">new</span> Composite<span class="br0">&#40;</span><span class="st0">&quot;composite 2&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">// add node to root as child</span>
	<span class="kw7">root</span><span class="sy0">.</span>getChild<span class="br0">&#40;</span>2<span class="br0">&#41;</span><span class="sy0">.</span><span class="kw7">add</span><span class="br0">&#40;</span><span class="kw1">new</span> Leaf<span class="br0">&#40;</span><span class="st0">&quot;leaf 3&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">// add a child leaf</span>
	<span class="kw7">root</span><span class="sy0">.</span>getChild<span class="br0">&#40;</span>2<span class="br0">&#41;</span><span class="sy0">.</span><span class="kw7">add</span><span class="br0">&#40;</span><span class="kw1">new</span> Leaf<span class="br0">&#40;</span><span class="st0">&quot;leaf 4&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">// add a child leaf</span>
	<span class="kw7">root</span><span class="sy0">.</span>getChild<span class="br0">&#40;</span>2<span class="br0">&#41;</span><span class="sy0">.</span><span class="kw7">add</span><span class="br0">&#40;</span><span class="kw1">new</span> Leaf<span class="br0">&#40;</span><span class="st0">&quot;leaf 5&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">// add a child leaf</span>
&nbsp;
	<span class="co1">// add a child leaf to the root node</span>
	<span class="kw7">root</span><span class="sy0">.</span><span class="kw7">add</span><span class="br0">&#40;</span><span class="kw1">new</span> Leaf<span class="br0">&#40;</span><span class="st0">&quot;leaf 6&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
	<span class="kw7">trace</span><span class="br0">&#40;</span><span class="st0">&quot;display tree&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
	<span class="kw7">trace</span><span class="br0">&#40;</span><span class="st0">&quot;============&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
	<span class="kw7">root</span><span class="sy0">.</span>operation<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span> 
&nbsp;
	<span class="kw7">trace</span><span class="br0">&#40;</span><span class="st0">&quot;remove first child of the second child of root&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
	<span class="kw7">trace</span><span class="br0">&#40;</span><span class="st0">&quot;==============================================&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
	<span class="kw7">root</span><span class="sy0">.</span>getChild<span class="br0">&#40;</span>2<span class="br0">&#41;</span><span class="sy0">.</span>remove<span class="br0">&#40;</span><span class="kw7">root</span><span class="sy0">.</span>getChild<span class="br0">&#40;</span>2<span class="br0">&#41;</span><span class="sy0">.</span>getChild<span class="br0">&#40;</span>1<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
	<span class="kw7">root</span><span class="sy0">.</span>operation<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
	<span class="kw7">trace</span><span class="br0">&#40;</span><span class="st0">&quot;remove the second child of root&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
	<span class="kw7">trace</span><span class="br0">&#40;</span><span class="st0">&quot;===============================&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
	<span class="kw7">root</span><span class="sy0">.</span>remove<span class="br0">&#40;</span><span class="kw7">root</span><span class="sy0">.</span>getChild<span class="br0">&#40;</span>2<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
	<span class="kw7">root</span><span class="sy0">.</span>operation<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
	<span class="br0">&#125;</span>
    <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></div></div>
]]></content:encoded>
			<wfw:commentRss>http://www.pedropt.com/blog/2010/03/08/design-patterns-using-action-script-3-structural-patterns-decorator-adapter-composite/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Design Patterns using Action Script 3: Creational Patterns (Factory &amp; Singleton)</title>
		<link>http://www.pedropt.com/blog/2010/03/04/design-patterns-using-action-script-3-creational-patterns-factory-singleton/</link>
		<comments>http://www.pedropt.com/blog/2010/03/04/design-patterns-using-action-script-3-creational-patterns-factory-singleton/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 15:16:29 +0000</pubDate>
		<dc:creator>Pedro</dc:creator>
				<category><![CDATA[Programação]]></category>
		<category><![CDATA[Software Patterns]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[Action Script]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://www.pedropt.com/blog/?p=84</guid>
		<description><![CDATA[I´m reading the O´Reilly book &#8220;ActionScript 3.0 Design Patterns&#8221;. Following are examples related in this excellent book but modified by me. This is the first part, about creational patterns (Singleton and Factory). Singleton Class User.as, used to store user proprieties. Factory Example related in book, that shows creation of products. File Creator.as: File CreatorA.as: File [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">I´m reading the O´Reilly book &#8220;ActionScript 3.0 Design Patterns&#8221;. Following are examples related in this excellent book but modified by me. This is the first part, about creational patterns (Singleton and Factory).</p>
<p><strong><span style="font-size: large;">Singleton</span></strong></p>
<p>Class <strong>User.as</strong>, used to store user proprieties.</p>
<div id="wpshdo_15" class="wp-synhighlighter-outer"><div id="wpshdt_15" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_15"></a><a id="wpshat_15" class="wp-synhighlighter-title" href="#codesyntax_15"  onClick="javascript:wpsh_toggleBlock(15)" title="Click to show/hide code block">Code block</a></td><td align="right"><a href="#codesyntax_15" onClick="javascript:wpsh_code(15)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_15" onClick="javascript:wpsh_print(15)" title="Print code"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_15" class="wp-synhighlighter-inner" style="display: block;"><pre class="actionscript3" style="font-family:monospace;"><span class="kw4">package</span> classes
<span class="br0">&#123;</span>
    <span class="kw1">public</span> const User<span class="sy0">:</span>_Singleton = <span class="kw1">new</span> _Singleton<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
&nbsp;
<span class="coMULTI">/**
 * Class Singleton with proprieties to use in application
 */</span>
<span class="kw1">internal</span> <span class="kw4">class</span> _Singleton
<span class="br0">&#123;</span>
    <span class="kw3">function</span> _Singleton<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><span class="br0">&#125;</span>
&nbsp;
    <span class="kw1">public</span> <span class="kw2">var</span> id<span class="sy0">:</span><a href="http://www.google.com/search?q=int%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:int.html"><span class="kw5">int</span></a><span class="sy0">;</span>
    <span class="kw1">public</span> <span class="kw2">var</span> <span class="kw7">name</span><span class="sy0">:</span><a href="http://www.google.com/search?q=string%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:string.html"><span class="kw5">String</span></a><span class="sy0">;</span>
    <span class="kw1">public</span> <span class="kw2">var</span> <span class="kw7">description</span><span class="sy0">:</span><a href="http://www.google.com/search?q=string%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:string.html"><span class="kw5">String</span></a><span class="sy0">;</span>
    <span class="kw1">public</span> <span class="kw2">var</span> username<span class="sy0">:</span><a href="http://www.google.com/search?q=string%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:string.html"><span class="kw5">String</span></a><span class="sy0">;</span>
    <span class="kw1">public</span> <span class="kw2">var</span> password<span class="sy0">:</span><a href="http://www.google.com/search?q=string%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:string.html"><span class="kw5">String</span></a><span class="sy0">;</span>
<span class="br0">&#125;</span></pre></div></div>
<p><strong><span style="font-size: large;">Factory</span></strong></p>
<p>Example related in book, that shows creation of products.</p>
<p>File <strong>Creator.as</strong>:</p>
<div id="wpshdo_16" class="wp-synhighlighter-outer"><div id="wpshdt_16" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_16"></a><a id="wpshat_16" class="wp-synhighlighter-title" href="#codesyntax_16"  onClick="javascript:wpsh_toggleBlock(16)" title="Click to show/hide code block">Code block</a></td><td align="right"><a href="#codesyntax_16" onClick="javascript:wpsh_code(16)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_16" onClick="javascript:wpsh_print(16)" title="Print code"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_16" class="wp-synhighlighter-inner" style="display: block;"><pre class="actionscript3" style="font-family:monospace;"><span class="kw4">package</span> example <span class="br0">&#123;</span>
&nbsp;
    <span class="kw1">import</span> <span class="kw6">flash.errors</span><span class="sy0">.</span><a href="http://www.google.com/search?q=illegaloperationerror%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:illegaloperationerror.html"><span class="kw5">IllegalOperationError</span></a><span class="sy0">;</span>
&nbsp;
    <span class="co1">// ABSTRACT Class (should be subclassed and not instantiated)</span>
    <span class="kw1">public</span> <span class="kw4">class</span> Creator <span class="br0">&#123;</span>
&nbsp;
    	<span class="kw1">public</span> <span class="kw3">function</span> doStuff<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">:</span><span class="kw1">void</span> <span class="br0">&#123;</span>
    	    <span class="kw2">var</span> product<span class="sy0">:</span>IProduct = <span class="kw1">this</span><span class="sy0">.</span>factoryMethod<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
	    product<span class="sy0">.</span>manipulate<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
        <span class="br0">&#125;</span>
&nbsp;
	<span class="co1">// ABSTRACT Method (must be overridden in a subclass)</span>
	<span class="kw1">protected</span> <span class="kw3">function</span> factoryMethod<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">:</span>IProduct <span class="br0">&#123;</span>
            <span class="kw1">throw</span> <span class="kw1">new</span> <a href="http://www.google.com/search?q=illegaloperationerror%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:illegaloperationerror.html"><span class="kw5">IllegalOperationError</span></a><span class="br0">&#40;</span><span class="st0">&quot;Abstract method: must be overridden in a subclass&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
	    <span class="kw1">return</span> <span class="kw1">null</span><span class="sy0">;</span>
	<span class="br0">&#125;</span>
    <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></div></div>
<p>File <strong>CreatorA.as</strong>:</p>
<div id="wpshdo_17" class="wp-synhighlighter-outer"><div id="wpshdt_17" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_17"></a><a id="wpshat_17" class="wp-synhighlighter-title" href="#codesyntax_17"  onClick="javascript:wpsh_toggleBlock(17)" title="Click to show/hide code block">Code block</a></td><td align="right"><a href="#codesyntax_17" onClick="javascript:wpsh_code(17)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_17" onClick="javascript:wpsh_print(17)" title="Print code"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_17" class="wp-synhighlighter-inner" style="display: block;"><pre class="actionscript3" style="font-family:monospace;"><span class="kw4">package</span> example <span class="br0">&#123;</span>
&nbsp;
    <span class="co1">// Concrete creator A (subclass of Creator)</span>
    <span class="kw1">public</span> <span class="kw4">class</span> CreatorA <span class="kw1">extends</span> Creator <span class="br0">&#123;</span>
&nbsp;
        override <span class="kw1">protected</span> <span class="kw3">function</span> factoryMethod<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">:</span>IProduct <span class="br0">&#123;</span>
            <span class="kw7">trace</span><span class="br0">&#40;</span><span class="st0">&quot;Creating product 1&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
	    <span class="kw1">return</span> <span class="kw1">new</span> Product1<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">// returns concrete product</span>
        <span class="br0">&#125;</span>
    <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></div></div>
<p>File <strong>CreatorB.as</strong>:</p>
<div id="wpshdo_18" class="wp-synhighlighter-outer"><div id="wpshdt_18" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_18"></a><a id="wpshat_18" class="wp-synhighlighter-title" href="#codesyntax_18"  onClick="javascript:wpsh_toggleBlock(18)" title="Click to show/hide code block">Code block</a></td><td align="right"><a href="#codesyntax_18" onClick="javascript:wpsh_code(18)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_18" onClick="javascript:wpsh_print(18)" title="Print code"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_18" class="wp-synhighlighter-inner" style="display: block;"><pre class="actionscript3" style="font-family:monospace;"><span class="kw4">package</span> example <span class="br0">&#123;</span>
&nbsp;
    <span class="co1">// Concrete creator B (subclass of Creator)</span>
    <span class="kw1">public</span> <span class="kw4">class</span> CreatorB <span class="kw1">extends</span> Creator <span class="br0">&#123;</span>
&nbsp;
        override <span class="kw1">protected</span> <span class="kw3">function</span> factoryMethod<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">:</span>IProduct <span class="br0">&#123;</span>
            <span class="kw7">trace</span><span class="br0">&#40;</span><span class="st0">&quot;Creating product 2&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
	    <span class="kw1">return</span> <span class="kw1">new</span> Product2<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">// returns concrete product</span>
        <span class="br0">&#125;</span>
    <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></div></div>
<p>File <strong>IProduct.as</strong>:</p>
<div id="wpshdo_19" class="wp-synhighlighter-outer"><div id="wpshdt_19" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_19"></a><a id="wpshat_19" class="wp-synhighlighter-title" href="#codesyntax_19"  onClick="javascript:wpsh_toggleBlock(19)" title="Click to show/hide code block">Code block</a></td><td align="right"><a href="#codesyntax_19" onClick="javascript:wpsh_code(19)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_19" onClick="javascript:wpsh_print(19)" title="Print code"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_19" class="wp-synhighlighter-inner" style="display: block;"><pre class="actionscript3" style="font-family:monospace;"><span class="kw4">package</span> example <span class="br0">&#123;</span>
&nbsp;
    <span class="kw1">public</span> interface IProduct <span class="br0">&#123;</span>
        <span class="kw3">function</span> manipulate<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">:</span><span class="kw1">void</span><span class="sy0">;</span>
    <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></div></div>
<p>File <strong>Product1.as</strong>:</p>
<div id="wpshdo_20" class="wp-synhighlighter-outer"><div id="wpshdt_20" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_20"></a><a id="wpshat_20" class="wp-synhighlighter-title" href="#codesyntax_20"  onClick="javascript:wpsh_toggleBlock(20)" title="Click to show/hide code block">Code block</a></td><td align="right"><a href="#codesyntax_20" onClick="javascript:wpsh_code(20)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_20" onClick="javascript:wpsh_print(20)" title="Print code"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_20" class="wp-synhighlighter-inner" style="display: block;"><pre class="actionscript3" style="font-family:monospace;"><span class="kw4">package</span> example <span class="br0">&#123;</span>
&nbsp;
    <span class="kw1">internal</span> <span class="kw4">class</span> Product1 implements IProduct <span class="br0">&#123;</span>
&nbsp;
        <span class="kw1">public</span> <span class="kw3">function</span> manipulate<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">:</span><span class="kw1">void</span> <span class="br0">&#123;</span>
	    <span class="kw7">trace</span><span class="br0">&#40;</span><span class="st0">&quot;Doing stuff with Product1&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
        <span class="br0">&#125;</span>
    <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></div></div>
<p>File <strong>Product2.as</strong>:</p>
<div id="wpshdo_21" class="wp-synhighlighter-outer"><div id="wpshdt_21" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_21"></a><a id="wpshat_21" class="wp-synhighlighter-title" href="#codesyntax_21"  onClick="javascript:wpsh_toggleBlock(21)" title="Click to show/hide code block">Code block</a></td><td align="right"><a href="#codesyntax_21" onClick="javascript:wpsh_code(21)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_21" onClick="javascript:wpsh_print(21)" title="Print code"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.pedropt.com/blog/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_21" class="wp-synhighlighter-inner" style="display: block;"><pre class="actionscript3" style="font-family:monospace;"><span class="kw4">package</span> example <span class="br0">&#123;</span>
&nbsp;
    <span class="kw1">internal</span> <span class="kw4">class</span> Product2 implements IProduct <span class="br0">&#123;</span>
&nbsp;
        <span class="kw1">public</span> <span class="kw3">function</span> manipulate<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">:</span><span class="kw1">void</span> <span class="br0">&#123;</span>
	    <span class="kw7">trace</span><span class="br0">&#40;</span><span class="st0">&quot;Doing stuff with Product2&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
        <span class="br0">&#125;</span>
    <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></div></div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow: hidden;">package classes<br />
{<br />
public const User:_Singleton = new _Singleton();<br />
}</p>
<p>/**<br />
* Class Singleton that represents proprieties used to change language<br />
*/<br />
internal class _Singleton<br />
{<br />
function _Singleton(){}</p>
<p>public var id:int;<br />
public var name:String;<br />
public var description:String;<br />
public var username:String;<br />
public var password:String;</p>
<p>}</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.pedropt.com/blog/2010/03/04/design-patterns-using-action-script-3-creational-patterns-factory-singleton/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Translate com pronúncia em inglês</title>
		<link>http://www.pedropt.com/blog/2009/11/18/google-translate-com-pronuncia-em-ingles/</link>
		<comments>http://www.pedropt.com/blog/2009/11/18/google-translate-com-pronuncia-em-ingles/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 00:23:47 +0000</pubDate>
		<dc:creator>Pedro</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[Tecnologia]]></category>

		<guid isPermaLink="false">http://www.pedropt.com/blog/?p=63</guid>
		<description><![CDATA[Hoje dei de caras com um novo design do iGoogle. Embora tenham mudado muito pouco nota-se um esforço de uniformização dos serviços por parte da empresa. O que não estava à espera é que redesenhassem também um dos serviços que mais procurado é pelo utilizador, o Google Translate. Entre as mudanças destaca-se um &#8220;pronunciador&#8221;, que [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Hoje dei de caras com um novo design do iGoogle. Embora tenham mudado muito pouco nota-se um esforço de uniformização dos serviços por parte da empresa. O que não estava à espera é que redesenhassem também um dos serviços que mais procurado é pelo utilizador, o <a href="http://www.google.com/translate" target="_blank">Google Translate</a>.</p>
<p style="text-align: justify;">Entre as mudanças destaca-se um &#8220;pronunciador&#8221;, que nesta fase apenas está disponível em inglês. Todos os textos que sejam traduzidos de qualquer língua para inglês podem agora ser ouvidos.</p>
<p style="text-align: center;"><img class="aligncenter" src="http://img20.imageshack.us/img20/2379/imgek.png" alt="Google Translate" width="687" height="377" /></p>
<p style="text-align: justify;">Para além disso também foi introduzida a tradução instantânea, isto é, a tradução vais sendo feita à medida que escrevemos o texto.</p>
<p style="text-align: center;"></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pedropt.com/blog/2009/11/18/google-translate-com-pronuncia-em-ingles/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fileinspect &#8211; Processos do Windows</title>
		<link>http://www.pedropt.com/blog/2009/10/23/fileinspect-processos-do-windows/</link>
		<comments>http://www.pedropt.com/blog/2009/10/23/fileinspect-processos-do-windows/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 14:52:12 +0000</pubDate>
		<dc:creator>Pedro</dc:creator>
				<category><![CDATA[Administração de Sistemas]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[Ferramentas]]></category>
		<category><![CDATA[Processos]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.pedropt.com/blog/?p=44</guid>
		<description><![CDATA[Todos os utilizadores, sejam eles vulgares ou técnicos, deparam-se com mensagens do Windows sobre determinado processo. Por vezes é necessário saber ao certo o que um determinado processo faz ou a causa de um erro qualquer. Nesse sentido, File Inspect Library disponibiliza uma base de dados bastante extensa e detalhada sobre cada processo do Windows, [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter" title="File Inspect Library" src="http://www.puntogeek.com/wp-content/uploads/2009/06/Fileinspect.png" alt="File Inspect Library" width="514" height="153" /></p>
<p style="text-align: justify;">Todos os utilizadores, sejam eles vulgares ou técnicos, deparam-se com mensagens do Windows sobre determinado processo. Por vezes é necessário saber ao certo o que um determinado processo faz ou a causa de um erro qualquer.</p>
<p style="text-align: justify;">Nesse sentido, <a title="Windows processes - File Inspect Library" href="http://www.fileinspect.com/" target="_blank">File Inspect Library</a> disponibiliza uma base de dados bastante extensa e detalhada sobre cada processo do Windows, para além da indicação de possíveis causa de erro e indicações sobre como os resolver.</p>
<p style="text-align: center;"></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pedropt.com/blog/2009/10/23/fileinspect-processos-do-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A pirataria e o meio ambiente</title>
		<link>http://www.pedropt.com/blog/2009/08/04/a-pirataria-e-o-meio-ambiente/</link>
		<comments>http://www.pedropt.com/blog/2009/08/04/a-pirataria-e-o-meio-ambiente/#comments</comments>
		<pubDate>Tue, 04 Aug 2009 09:29:02 +0000</pubDate>
		<dc:creator>Pedro</dc:creator>
				<category><![CDATA[Humor]]></category>

		<guid isPermaLink="false">http://www.pedropt.com/blog/?p=56</guid>
		<description><![CDATA[Tirado descaradamente daqui, uma foto que justifica a prática da pirataria: Afinal as pessoas só querem ajudar o ambiente&#8230;]]></description>
			<content:encoded><![CDATA[<p>Tirado descaradamente <a href="http://mangasverdes.es/2008/12/10/la-pirateria-respeta-el-medio-ambiente/" target="_blank">daqui</a>, uma foto que justifica a prática da pirataria:</p>
<p style="text-align: center;"><img class="aligncenter" title="Pirataria e meio ambiente" src="http://img26.imageshack.us/img26/1296/pirateriaverde.png" alt="" width="449" height="388" /></p>
<p>Afinal as pessoas só querem ajudar o ambiente&#8230;  <img src='http://www.pedropt.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> </p>
<p style="text-align: center;"></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pedropt.com/blog/2009/08/04/a-pirataria-e-o-meio-ambiente/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Translate: Tradução de documentos</title>
		<link>http://www.pedropt.com/blog/2009/07/16/google-translate-traducao-de-documentos/</link>
		<comments>http://www.pedropt.com/blog/2009/07/16/google-translate-traducao-de-documentos/#comments</comments>
		<pubDate>Thu, 16 Jul 2009 13:44:01 +0000</pubDate>
		<dc:creator>Pedro</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[Tecnologia]]></category>

		<guid isPermaLink="false">http://www.pedropt.com/blog/?p=51</guid>
		<description><![CDATA[O Google Translate já consegue traduzir documentos: É só clicar em &#8220;Carregar documento&#8221;, fazer upload do ficheiro e voilá.]]></description>
			<content:encoded><![CDATA[<p>O Google Translate já consegue traduzir documentos:</p>
<p style="text-align: center;"><img class="aligncenter" src="http://img17.imageshack.us/img17/4309/gtrf.jpg" alt="" width="506" height="290" /></p>
<p>É só clicar em &#8220;Carregar documento&#8221;, fazer upload do ficheiro e voilá.</p>
<p style="text-align: center;"></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pedropt.com/blog/2009/07/16/google-translate-traducao-de-documentos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>20 ferramentas para programadores</title>
		<link>http://www.pedropt.com/blog/2009/07/16/20-ferramentas-para-programadores/</link>
		<comments>http://www.pedropt.com/blog/2009/07/16/20-ferramentas-para-programadores/#comments</comments>
		<pubDate>Thu, 16 Jul 2009 13:26:26 +0000</pubDate>
		<dc:creator>Pedro</dc:creator>
				<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[Ferramentas]]></category>

		<guid isPermaLink="false">http://www.pedropt.com/blog/?p=42</guid>
		<description><![CDATA[Existem inúmeras ferramentas na internet que fazem aumentar a produtividade dos designers, programadores e até utilizadores em geral. Algumas dessas ferramentas são extremamente úteis, outras uma perda de tempo. No entanto nem todas são freeware, por isso deixo aqui uma lista de 20 ferramentas desse tipo. Dropbox &#8211; Partilha de ficheiros online FreshBooks &#8211; Serviços [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Existem inúmeras ferramentas na internet que fazem aumentar a produtividade dos designers, programadores e até utilizadores em geral. Algumas dessas ferramentas são extremamente úteis, outras uma perda de tempo. No entanto nem todas são freeware, por isso deixo aqui uma lista de 20 ferramentas desse tipo.</p>
<p><a href="http://www.getdropbox.com/" target="_blank">Dropbox</a> &#8211; Partilha de ficheiros online</p>
<p><a href="http://www.freshbooks.com/" target="_blank">FreshBooks</a> &#8211; Serviços de facturação</p>
<p><a href="http://www.openwith.org/" target="_blank">OpenWith</a> &#8211; Programas para tipos de ficheiros</p>
<p><a href="http://www.siwapp.org/" target="_blank">SiWapp</a> &#8211; Sistema de facturação</p>
<p><a href="http://www.tynt.com/" target="_blank">Tracer</a> &#8211; Monitorização de sites</p>
<p><a href="http://kuler.adobe.com/" target="_blank">Adobe Kuler</a> &#8211; Gerador de cores / fontes</p>
<p><a href="http://www.typetester.org/" target="_blank">TypeTester</a> &#8211; Comparador de estilos / cores</p>
<p><a href="http://www.showdocument.com/" target="_blank">ShowDocument</a> &#8211; Visualização de documentos partilhados</p>
<p><a href="http://www.wix.com/" target="_blank">Wix</a> &#8211; Web IDE Flash</p>
<p><a href="http://www.html-pdf-converter.com/" target="_blank">HTML-&gt;PDF Converter</a> &#8211; Conversor HTML -&gt; PDF</p>
<p><a href="http://www.oldversion.com/" target="_blank">OldVersion</a> &#8211; Download de anteriores versões de programas</p>
<p><a href="http://www.getfirebug.com/" target="_blank">Firebug </a>- Plugin de firefox para WebDevelopers</p>
<p><a href="http://new.myfonts.com/WhatTheFont/" target="_blank">What The Font</a> &#8211; Identificador de fontes</p>
<p><a href="http://www.splashup.com/" target="_blank">SplashUp</a> &#8211; Editor de imagem online</p>
<p><a href="http://tester.jonasjohn.de/" target="_blank">Test Everything</a> &#8211; Validador de sites</p>
<p><a href="http://www.formatpixel.com/" target="_blank">FormatPixel</a> &#8211; Design de brochuras e cartazes online</p>
<p><a href="http://browsershots.org/" target="_blank">Browser Shots</a> &#8211; Screenshots de um site em vários browsers</p>
<p><a href="http://answer.im/" target="_blank">Answer IM</a> &#8211; Mensageiro</p>
<p><a href="http://www.filemail.com/" target="_blank">FileMail </a>- Enviar ficheiros de grande tamanho via email</p>
<p><a href="http://springloops.com/" target="_blank">SpringLoops</a> &#8211; Serviços de colaboração</p>
<p><a href="http://www.presidiacreative.com/20-free-useful-tools-for-designers-and-developers/" target="_blank">Fonte</a></p>
<p style="text-align: center;"></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pedropt.com/blog/2009/07/16/20-ferramentas-para-programadores/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Qmail e a sua Queue&#8230;</title>
		<link>http://www.pedropt.com/blog/2009/06/23/qmail-e-a-sua-queue/</link>
		<comments>http://www.pedropt.com/blog/2009/06/23/qmail-e-a-sua-queue/#comments</comments>
		<pubDate>Tue, 23 Jun 2009 09:16:00 +0000</pubDate>
		<dc:creator>Pedro</dc:creator>
				<category><![CDATA[Administração de Sistemas]]></category>
		<category><![CDATA[Mail]]></category>
		<category><![CDATA[Qmail]]></category>
		<category><![CDATA[Servidores]]></category>

		<guid isPermaLink="false">http://www.pedropt.com/blog/?p=38</guid>
		<description><![CDATA[Há coisas que não se percebem. O Servidor de email da minha empresa, Qmail, estava a ficar, a cada minuto, com mail um e-mail na sua queue. Comecemos pelo princípio. Há cerca de meio ano atrás desenvolvi um shell script de monitorização do servidor apache, para iniciá-lo se estivesse em baixo. Isto é devido ao [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Há coisas que não se percebem. O Servidor de email da minha empresa, Qmail, estava a ficar, a cada minuto, com mail um e-mail na sua queue.</p>
<p style="text-align: justify;">Comecemos pelo princípio. Há cerca de meio ano atrás desenvolvi um shell script de monitorização do servidor apache, para iniciá-lo se estivesse em baixo. Isto é devido ao facto do nosso servidor possuir pouca memória, por isso o tipo por vezes passava-se. Até aqui tudo bem, mas nessa altura esqueci-me de comentar um echo qualquer, ou seja, um output. O script funcionava bem até que, a empresa de hosting decidiu fazer manutenção dos servidores. A partir daí, cada vez que o script era executado era enviado um email para a queue, permanecendo por lá. Isto troxe alguns problemas, por exemplo, não conseguia-mos enviar e-mails para o exterior, devido ao tamanho da queue, que chegou a ter cerca de 10000 mails!  Foi fácil a sua resolução, comentar o output! <img src='http://www.pedropt.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  No entanto até dar com o problema&#8230; Seja como for deixo aqui algumas dicas de algumas operações a fazer, caso alguém lhe aconteça o mesmo.</p>
<p style="text-align: justify;">Monitorizar os headers de cada e-mail:</p>
<p style="text-align: justify;">tail -f /usr/local/psa/var/log/maillog</p>
<p>Verificar o número de e-mails presentes na queue:</p>
<p>/var/qmail/bin/qmail-qstat</p>
<p>Fica <a href="https://www.solarvps.com/forums/index.php?topic=420.0" target="_blank">aqui </a>também um script para a limpeza da queue do Qmail.</p>
<p style="text-align: center;"></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pedropt.com/blog/2009/06/23/qmail-e-a-sua-queue/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twittar ou não Twittar</title>
		<link>http://www.pedropt.com/blog/2009/06/22/twittar-ou-nao-twittar/</link>
		<comments>http://www.pedropt.com/blog/2009/06/22/twittar-ou-nao-twittar/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 08:37:52 +0000</pubDate>
		<dc:creator>Pedro</dc:creator>
				<category><![CDATA[Redes Sociais]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://www.pedropt.com/blog/?p=31</guid>
		<description><![CDATA[Twittar ou não Twittar, eis a questão. Uns são bastante cépticos, outros (como eu) demoraram a aceitar esta nova rede social, outros ainda fazem dele o seu próprio Big Brother. É impressionante a forma como algumas pessoas usam o Twitter, algo que supostamente é usado para dar a conhecer o que uma pessoa está a [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Twittar ou não Twittar, eis a questão.</p>
<p style="text-align: justify;">Uns são bastante cépticos, outros (como eu) demoraram a aceitar esta nova rede social, outros ainda fazem dele o seu próprio Big Brother. É impressionante a forma como algumas pessoas usam o Twitter, algo que supostamente é usado para dar a conhecer o que uma pessoa está a fazer num determinado momento tornou-se um vício para algumas pessoas. Já quase que chegam ao extremo de dizer &#8220;A sair da casa de banho&#8221;, &#8220;Um mosca pousou-se por cima da minha mão&#8221; ou do género. Não estou a criticar, mas demasiadamente exagerado.</p>
<p style="text-align: justify;">Também têm vindo a público notícias interessantes sobre pessoas que usam o Twitter. Uma delas, é a notícia de uma miúda de 17 anos, que morreu enquanto &#8220;twittava&#8221;, quando estava na casa de banho! A outra, de há 2 semanas atrás, dava conta que assaltaram a casa de uma pessoa que tinha dito que ia de férias. A questão aqui é, será que ao usar as redes sociais de forma exagerada não se está a dar um tiro no próprio pé? Onde para a privacidade? Não estaremos nós próprios a tornarmos-nos vítimas de um Big Brother criado por nós? Já me questionei sobre isso e cada vez os factos caminham para esse sentido.</p>
<p style="text-align: justify;">A nível pessoal, também uso o Twitter e outro tipo de redes sociais, no entanto tenho sempre a preocupação de não deixar muitas informações sobre a minha vida pessoal. Quanto a mim seria muito mais benéfico o uso do Twitter para alertas aos amigos, combinar saídas, notícias, etc. Já é usado para esse efeito, mas muito pouco.</p>
<p style="text-align: center;"></p>
<p style="text-align: justify;">
<p style="text-align: justify;">
]]></content:encoded>
			<wfw:commentRss>http://www.pedropt.com/blog/2009/06/22/twittar-ou-nao-twittar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mapa mundial das redes sociais</title>
		<link>http://www.pedropt.com/blog/2009/06/14/mapa-mundial-das-redes-sociais/</link>
		<comments>http://www.pedropt.com/blog/2009/06/14/mapa-mundial-das-redes-sociais/#comments</comments>
		<pubDate>Sun, 14 Jun 2009 10:28:25 +0000</pubDate>
		<dc:creator>Pedro</dc:creator>
				<category><![CDATA[Redes Sociais]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Hi5]]></category>

		<guid isPermaLink="false">http://www.pedropt.com/blog/?p=17</guid>
		<description><![CDATA[Enquanto navegava pela internet, dei de caras com o mapa mundial das redes sociais, que retrata qual a rede dominante em cada país: (Clicar para aumentar a imagem) Como se pode observar, o Facebook domina claramente em todo o mundo. Curiosidade, ou talvez não, o Hi5 surge em primeiro lugar em Portugal, acompanhado pela Colômbia [...]]]></description>
			<content:encoded><![CDATA[<p>Enquanto navegava pela internet, dei de caras com o mapa mundial das redes sociais, que retrata qual a rede dominante em cada país:</p>
<p style="text-align: justify;"><a href="http://www.vincos.it/wp-content/uploads/2009/06/wmsn-06-09.png" target="_blank"><img class="aligncenter" src="http://www.vincos.it/wp-content/uploads/2009/06/wmsn-06-09.png" alt="" width="512" height="269" /></a></p>
<p style="text-align: center;"><span style="font-size: x-small;"><span style="color: #888888;">(Clicar para aumentar a imagem)</span></span></p>
<p style="text-align: justify;">Como se pode observar, o Facebook domina claramente em todo o mundo. Curiosidade, ou talvez não, o Hi5 surge em primeiro lugar em Portugal, acompanhado pela Colômbia e Roménia.</p>
<p style="text-align: justify;"><a href="http://www.vincos.it/world-map-of-social-networks/" target="_blank">Fonte</a></p>
<p style="text-align: center;"></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pedropt.com/blog/2009/06/14/mapa-mundial-das-redes-sociais/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
