<?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>C.M. Jackson .Net &#187; Design</title>
	<atom:link href="http://www.cmjackson.net/tag/design/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.cmjackson.net</link>
	<description>Web Design, Programming, Tutorials</description>
	<lastBuildDate>Tue, 18 May 2010 22:43:14 +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>SOLID Programming Principles</title>
		<link>http://www.cmjackson.net/2009/09/04/solid-programming-principles/</link>
		<comments>http://www.cmjackson.net/2009/09/04/solid-programming-principles/#comments</comments>
		<pubDate>Fri, 04 Sep 2009 14:33:20 +0000</pubDate>
		<dc:creator>Chris Jackson</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Object Oriented Programming]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[Principles]]></category>
		<category><![CDATA[Reuseable Code]]></category>

		<guid isPermaLink="false">http://www.cmjackson.net/?p=253</guid>
		<description><![CDATA[The SOLID Principles of programming are a good set of rules to follow when you are designing and developing an object oriented application. S  Single Responsiblity Principle &#8211; A class should do one thing and do it well. If you can think of more than one reason to change a class, then it has more than [...]]]></description>
			<content:encoded><![CDATA[<p>The SOLID Principles of programming are a good set of rules to follow when you are designing and developing an object oriented application.</p>
<h2><span style="color: #ff0000;">S</span></h2>
<p><a href="http://fohjin.blogspot.com/2008/04/srp-single-responsibility-principle.html"> <span style="text-decoration: underline;">Single Responsiblity Principle</span></a> &#8211; A class should do one thing and do it well. If you can think of more than one reason to change a class, then it has more than one responsibility.</p>
<h2><span style="color: #ff0000;">O</span></h2>
<p><span style="text-decoration: underline;"><a href="http://www.eventhelix.com/RealtimeMantra/Object_Oriented/open_closed_principle.htm">Open / Closed Principle</a></span> &#8211; A class should be open for extension but closed for modification. Classes should be designed so they can be inherited from without having to modify them.</p>
<h2><span style="color: #ff0000;">L</span></h2>
<p><a href="http://www.lostechies.com/blogs/chad_myers/archive/2008/03/11/ptom-the-liskov-substitution-principle.aspx">Liskov Substitution Principle</a> &#8211; Derived classes must be substitutable for their base class. When a class method accepts an object, the method should be able to accept children of that object without knowing anything about the children.</p>
<h2><span style="color: #ff0000;">I</span></h2>
<p><a href="http://www.oodesign.com/interface-segregation-principle.html">Interface Segregation Principle</a> &#8211; Interfaces should be fine grained and only provide for your needs. When building your interfaces, you should not add more functionality than what you need at the time.</p>
<h2><span style="color: #ff0000;">D</span></h2>
<p><a href="http://www.oodesign.com/dependency-inversion-principle.html">Dependency Inversion Principle</a> &#8211; High level modules should not depend on low level modules, but instead both should depend on abstractions. Interfaces should be used as placeholders and factory classes should be used to instantiate objects. This causes loose coupling between classes.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cmjackson.net/2009/09/04/solid-programming-principles/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
