<?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/"
	xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"
>

<channel>
	<title>ActionScript 3 Design Patterns &#187; Abstract Classes</title>
	<atom:link href="http://www.as3dp.com/category/abstract-classes/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.as3dp.com</link>
	<description>OOP Techniques for Flash and Flex Developers</description>
	<lastBuildDate>Thu, 08 Jul 2010 21:18:48 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/us/</creativeCommons:license>
		<item>
		<title>Design Pattern Principles for ActionScript 3.0: The Dependency Inversion Principle</title>
		<link>http://www.as3dp.com/2009/04/07/design-pattern-principles-for-actionscript-30-the-dependency-inversion-principle/</link>
		<comments>http://www.as3dp.com/2009/04/07/design-pattern-principles-for-actionscript-30-the-dependency-inversion-principle/#comments</comments>
		<pubDate>Tue, 07 Apr 2009 12:51:52 +0000</pubDate>
		<dc:creator>William B. Sanders</dc:creator>
				<category><![CDATA[Abstract Classes]]></category>
		<category><![CDATA[Design Patterns at Work]]></category>
		<category><![CDATA[Principles]]></category>

		<guid isPermaLink="false">http://www.as3dp.com/?p=862</guid>
		<description><![CDATA[Most of what we mean by the Dependency Inversion Principle has been discussed either in describing what a design pattern does in terms of relating components to one another or implied in other principles. However, I’ve found that the Dependency Inversion Principle acts as a helpful reminder to keep things abstract in working with instances [...]]]></description>
		<wfw:commentRss>http://www.as3dp.com/2009/04/07/design-pattern-principles-for-actionscript-30-the-dependency-inversion-principle/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/us/</creativeCommons:license>
	</item>
		<item>
		<title>Design Pattern Principles for ActionScript 3.0: Program to an Interface; not an implementation</title>
		<link>http://www.as3dp.com/2009/02/14/design-pattern-principles-for-actionscript-30-program-to-an-interface-not-an-implementation/</link>
		<comments>http://www.as3dp.com/2009/02/14/design-pattern-principles-for-actionscript-30-program-to-an-interface-not-an-implementation/#comments</comments>
		<pubDate>Sat, 14 Feb 2009 12:55:24 +0000</pubDate>
		<dc:creator>William B. Sanders</dc:creator>
				<category><![CDATA[Abstract Classes]]></category>
		<category><![CDATA[Design Patterns at Work]]></category>
		<category><![CDATA[Polymorphism]]></category>
		<category><![CDATA[Principles]]></category>

		<guid isPermaLink="false">http://www.as3dp.com/?p=685</guid>
		<description><![CDATA[The first principle of design patterns is,
Program to an interface, not an implementation
 Simply put, the Gang of Four urges programmers to declare variables only to abstract classes and interfaces and not concrete implementations. You never want to type your instance as a concrete class derived from an interface or abstract class—only to the interface.
Okay, [...]]]></description>
		<wfw:commentRss>http://www.as3dp.com/2009/02/14/design-pattern-principles-for-actionscript-30-program-to-an-interface-not-an-implementation/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/us/</creativeCommons:license>
	</item>
		<item>
		<title>Design Pattern Principles for ActionScript 3.0: The Liskov Substitution Principle</title>
		<link>http://www.as3dp.com/2009/02/08/design-pattern-principles-for-actionscript-30-the-liskov-substitution-principle/</link>
		<comments>http://www.as3dp.com/2009/02/08/design-pattern-principles-for-actionscript-30-the-liskov-substitution-principle/#comments</comments>
		<pubDate>Sun, 08 Feb 2009 12:26:00 +0000</pubDate>
		<dc:creator>William B. Sanders</dc:creator>
				<category><![CDATA[Abstract Classes]]></category>
		<category><![CDATA[Design Patterns]]></category>
		<category><![CDATA[Design Patterns at Work]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[Principles]]></category>

		<guid isPermaLink="false">http://www.as3dp.com/?p=659</guid>
		<description><![CDATA[Gentle Reader: Now that we’ve worked through all of the design patterns in ActionScript 3.0 from GoF (well, Builder is still in the works, but that’ll be available soon), now would be a good time start going through the principles underlying design patterns. This will be the first in that series.
The 1987 OOPSLA keynote address [...]]]></description>
		<wfw:commentRss>http://www.as3dp.com/2009/02/08/design-pattern-principles-for-actionscript-30-the-liskov-substitution-principle/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/us/</creativeCommons:license>
	</item>
		<item>
		<title>ActionScript 3.0 Abstract Factory Design Pattern: Multiple Products and Factories</title>
		<link>http://www.as3dp.com/2009/01/25/actionscript-30-abstract-factory-design-pattern-multiple-products-and-factories/</link>
		<comments>http://www.as3dp.com/2009/01/25/actionscript-30-abstract-factory-design-pattern-multiple-products-and-factories/#comments</comments>
		<pubDate>Sun, 25 Jan 2009 22:00:24 +0000</pubDate>
		<dc:creator>William B. Sanders</dc:creator>
				<category><![CDATA[Abstract Classes]]></category>
		<category><![CDATA[Abstract Factory]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://www.as3dp.com/?p=575</guid>
		<description><![CDATA[
This is one of the few design patterns that I worked up directly from the class diagram and from concepts in GoF. Normally, I like to look at some examples, done in Java or C#, but not this time. As you will see in Figure 1, the pattern appears to be fairly daunting, but I [...]]]></description>
		<wfw:commentRss>http://www.as3dp.com/2009/01/25/actionscript-30-abstract-factory-design-pattern-multiple-products-and-factories/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/us/</creativeCommons:license>
	</item>
		<item>
		<title>Take a Design Pattern to Work Part IV: Establishing a Design Pattern Foundation</title>
		<link>http://www.as3dp.com/2009/01/15/take-a-design-pattern-to-work-part-iv-establishing-a-design-pattern-foundation/</link>
		<comments>http://www.as3dp.com/2009/01/15/take-a-design-pattern-to-work-part-iv-establishing-a-design-pattern-foundation/#comments</comments>
		<pubDate>Fri, 16 Jan 2009 00:19:02 +0000</pubDate>
		<dc:creator>William B. Sanders</dc:creator>
				<category><![CDATA[Abstract Classes]]></category>
		<category><![CDATA[Design Patterns]]></category>
		<category><![CDATA[Design Patterns at Work]]></category>
		<category><![CDATA[Factory Method]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[OOP]]></category>

		<guid isPermaLink="false">http://www.as3dp.com/?p=544</guid>
		<description><![CDATA[Gentle Reader: This is Part 4 of a four-part series of posts on introducing design patterns and OOP into the work place. Parts 1 through 3 will provide the context for this part. Also, taking a look at No Time for OOP and Design Patterns will give you the background on this series. As always, [...]]]></description>
		<wfw:commentRss>http://www.as3dp.com/2009/01/15/take-a-design-pattern-to-work-part-iv-establishing-a-design-pattern-foundation/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/us/</creativeCommons:license>
	</item>
		<item>
		<title>Abstract is as Abstract Does: A Forrest Gump Approach to Abstract Classes in ActionScript 3.0</title>
		<link>http://www.as3dp.com/2009/01/11/abstract-is-as-abstract-does-a-forrest-gump-approach-to-abstract-classes-in-actionscript-30/</link>
		<comments>http://www.as3dp.com/2009/01/11/abstract-is-as-abstract-does-a-forrest-gump-approach-to-abstract-classes-in-actionscript-30/#comments</comments>
		<pubDate>Sun, 11 Jan 2009 14:52:12 +0000</pubDate>
		<dc:creator>William B. Sanders</dc:creator>
				<category><![CDATA[Abstract Classes]]></category>

		<guid isPermaLink="false">http://www.as3dp.com/?p=540</guid>
		<description><![CDATA[Here it is 2009, and the discussions about the lack of abstract classes in ActionScript 3.0 go back at least to 2006. Chandima’s 2007  post nicely deals with a number of issues concerning abstract classes, and I’m not going to try and improve on that. Instead, in this short post, I want to bring [...]]]></description>
		<wfw:commentRss>http://www.as3dp.com/2009/01/11/abstract-is-as-abstract-does-a-forrest-gump-approach-to-abstract-classes-in-actionscript-30/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/us/</creativeCommons:license>
	</item>
		<item>
		<title>Runtime Checks for Abstract Classes and Methods in ActionScript 3.0</title>
		<link>http://www.as3dp.com/2007/05/05/runtime-checks-for-abstract-classes-and-methods-in-actionscript-30/</link>
		<comments>http://www.as3dp.com/2007/05/05/runtime-checks-for-abstract-classes-and-methods-in-actionscript-30/#comments</comments>
		<pubDate>Sat, 05 May 2007 10:40:11 +0000</pubDate>
		<dc:creator>Chandima Cumaranatunge</dc:creator>
				<category><![CDATA[Abstract Classes]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[OOP]]></category>

		<guid isPermaLink="false">http://www.as3dp.com/?p=9</guid>
		<description><![CDATA[In AS2, declaring a constructor as private in a class prevented it from being instantiated. Unlike AS2, constructor methods cannot be declared as private in ActionScript 3.0. This killed the simple runtime check for abstract class instantation.

A more creative approach is necessary in AS3. The solution to check for abstract class instantiation is quite simple, but how do we make sure that abstract methods have been implemented in subclasses as well? Here is one solution to this issue using the concept of <a href="http://en.wikipedia.org/wiki/Introspection_%28computer_science%29" target="_blank">type introspection</a> in ActionScript 3.]]></description>
		<wfw:commentRss>http://www.as3dp.com/2007/05/05/runtime-checks-for-abstract-classes-and-methods-in-actionscript-30/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/us/</creativeCommons:license>
	</item>
	</channel>
</rss>
