<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Object Mentor Blog: The Open-Closed Principle for Languages with Open Classes</title>
    <link>http://blog.objectmentor.com/articles/2008/09/04/the-open-closed-principle-for-languages-with-open-classes</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description></description>
    <item>
      <title>The Open-Closed Principle for Languages with Open Classes</title>
      <description>&lt;p&gt;We&amp;#8217;ve been having a discussion inside Object Mentor World Design Headquarters about the meaning of the &lt;span class="caps"&gt;OCP&lt;/span&gt; for dynamic languages, like Ruby, with open classes.&lt;/p&gt;


	&lt;p&gt;For example, in Ruby it&amp;#8217;s normal to define a class or module, &lt;em&gt;e.g.,&lt;/em&gt;&lt;/p&gt;


&lt;pre&gt;
    &lt;code&gt;
# foo.rb
class Foo
    def method1 *args
        ...
    end
end
    &lt;/code&gt;
&lt;/pre&gt;

	&lt;p&gt;and later re-open the class and add (or redefine) methods,&lt;/p&gt;


&lt;pre&gt;
    &lt;code&gt;
# foo2.rb
class Foo
    def method2 *args
        ...
    end
end
    &lt;/code&gt;
&lt;/pre&gt;

	&lt;p&gt;Users of &lt;code&gt;Foo&lt;/code&gt; see all the methods, as if &lt;code&gt;Foo&lt;/code&gt; had one definition.&lt;/p&gt;


&lt;pre&gt;
    &lt;code&gt;
foo = Foo.new
foo.method1 :arg1, :arg2
foo.method2 :arg1, :arg2
    &lt;/code&gt;
&lt;/pre&gt;

	&lt;p&gt;Do open classes violate the Open-Closed Principle? Bertrand Meyer articulated &lt;span class="caps"&gt;OCP&lt;/span&gt;. Here is his definition&lt;sup&gt;&lt;a href="#fn1"&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;Software entities (classes, modules, functions, &lt;em&gt;etc.&lt;/em&gt;) should be open for extension, but closed for modification.&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;He elaborated on it &lt;a href="http://se.ethz.ch/~meyer/publications/computer/implicitness.pdf"&gt;here&lt;/a&gt;.&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;... This is the open-closed principle, which in my opinion is one of the central innovations of object technology: the ability to use a software component as it is, while retaining the possibility of adding to it later through inheritance. Unlike the records or structures of other approaches, a class of object technology is both closed and open: closed because we can start using it for other components (its clients); open because we can at any time add new properties without invalidating its existing clients.&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;blockquote&gt;
		&lt;p&gt;&lt;a href="http://se.ethz.ch/~meyer/publications/computer/implicitness.pdf"&gt;Tell Less, Say More: The Power of Implicitness&lt;/a&gt;&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;So, if one client &lt;code&gt;require&lt;/code&gt;&amp;#8217;s only &lt;code&gt;foo.rb&lt;/code&gt; and only uses &lt;code&gt;method1&lt;/code&gt;, that client doesn&amp;#8217;t care what &lt;code&gt;foo2.rb&lt;/code&gt; does. However, if the client also &lt;code&gt;require&lt;/code&gt;&amp;#8217;s &lt;code&gt;foo2.rb&lt;/code&gt;, perhaps indirectly through another &lt;code&gt;require&lt;/code&gt;, problems will ensue unless the client is unaffected by what &lt;code&gt;foo2.rb&lt;/code&gt; does.  This looks a lot like the way &amp;#8220;good&amp;#8221; inheritance should behave.&lt;/p&gt;


	&lt;p&gt;So, the answer is &lt;em&gt;no&lt;/em&gt;, we aren&amp;#8217;t violating &lt;span class="caps"&gt;OCP&lt;/span&gt;, as long as we extend a re-opened class following the same rules we would use when inheriting from it.&lt;/p&gt;


	&lt;p&gt;If we use inheritance instead:&lt;/p&gt;


&lt;pre&gt;
    &lt;code&gt;
# foo.rb
class Foo
    def method1 *args
        ...
    end
end
...
class DerivedFoo &amp;lt; Foo
    def method2 *args
        ...
    end
end
...
foo = SubFoo.new    # Instantiate different class...
foo.method1 :arg1, :arg2
foo.method2 :arg1, :arg2
    &lt;/code&gt;
&lt;/pre&gt;

	&lt;p&gt;One notable difference is that we have to instantiate a different class. This is an important difference. While you can often just use inheritance, and maybe you should prefer it, inheritance only works if you have full control over what types get instantiated and &lt;em&gt;it&amp;#8217;s easy to change which types you use&lt;/em&gt;. Of course, inheritance is also the best approach when you need all behavioral variants &lt;em&gt;simulateneously&lt;/em&gt;, &lt;em&gt;i.e.,&lt;/em&gt; each variant in one or more objects.&lt;/p&gt;


	&lt;p&gt;Sometimes you want to affect the behavior of all instances transparently, without changing the types that are instantiated. A slightly better example, logging method calls, illustrates the point. Here we use the &amp;#8220;famous&amp;#8221; &lt;code&gt;alias_method&lt;/code&gt; in Ruby.&lt;/p&gt;


&lt;pre&gt;
    &lt;code&gt;
# foo.rb
class Foo
    def method1 *args
        ...
    end
end
# logging_foo.rb
class Foo
    alias_method :old_method1, :method1
    def method1 *args
        p "Inside method1(#{args.inspect})" 
        old_method1 *args
    end
end
...
foo = Foo.new
foo.method1 :arg1, :arg2
    &lt;/code&gt;
&lt;/pre&gt;

	&lt;p&gt;&lt;code&gt;Foo.method1&lt;/code&gt; behaves like a subclass override, with extended behavior that still obeys the &lt;a href="http://www.objectmentor.com/resources/articles/lsp.pdf"&gt;Liskov-Substitution Principle&lt;/a&gt; (LSP).&lt;/p&gt;


	&lt;p&gt;So, I think the &lt;span class="caps"&gt;OCP&lt;/span&gt; can be reworded slightly.&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;Software entities (classes, modules, functions, &lt;em&gt;etc.&lt;/em&gt;) should be open for extension, but closed for &lt;strong&gt;source&lt;/strong&gt; modification.&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;We should not re-open the original source, but adding functionality through a separate source file is okay.&lt;/p&gt;


	&lt;p&gt;Actually, I prefer a slightly different wording.&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;Software entities (classes, modules, functions, &lt;em&gt;etc.&lt;/em&gt;) should be open for extension, but closed for &lt;strong&gt;source and contract&lt;/strong&gt; modification.&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;The extra &lt;strong&gt;and contract&lt;/strong&gt; is redundant with &lt;span class="caps"&gt;LSP&lt;/span&gt;. I don&amp;#8217;t think this kind of redundancy is necessarily bad. ;) The &lt;em&gt;contract&lt;/em&gt; is the set of &lt;em&gt;behavioral expectations&lt;/em&gt; between the &amp;#8220;entity&amp;#8221; and its client(s). Just as it is &lt;a href="http://blog.objectmentor.com/articles/2007/02/17/liskov-substitution-principle-and-the-ruby-core-libraries"&gt;bad to break the contract with inheritance&lt;/a&gt;, it is also bad to break it through open classes.&lt;/p&gt;


	&lt;p&gt;&lt;span class="caps"&gt;OCP&lt;/span&gt; and &lt;span class="caps"&gt;LSP&lt;/span&gt; together are our most important design principles for effective organization of similar &lt;em&gt;vs.&lt;/em&gt; variant behaviors. Inheritance is one way we do this. Open classes provide another way. Aspects provide a third way and are subject to the same &lt;a href="http://www.aosd.net/2007/program/industry/I6-AspectDesignPrinciples.pdf"&gt;design issues&lt;/a&gt;.&lt;/p&gt;


	&lt;p id="fn1"&gt;&lt;sup&gt;1&lt;/sup&gt; Meyer, Bertrand (1988). Object-Oriented Software Construction. Prentice Hall. &lt;span class="caps"&gt;ISBN 0136290493&lt;/span&gt;.&lt;/p&gt;</description>
      <pubDate>Thu, 04 Sep 2008 21:42:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:8045ef44-c256-4c10-9edf-7f9fde4a26bd</guid>
      <author>Dean Wampler</author>
      <link>http://blog.objectmentor.com/articles/2008/09/04/the-open-closed-principle-for-languages-with-open-classes</link>
      <category>Dean's Deprecations</category>
      <category>Dynamic Languages</category>
      <category>Design Principles</category>
      <category>Clean Code</category>
      <category>OCP</category>
      <category>languages</category>
      <category>Ruby</category>
    </item>
    <item>
      <title>"The Open-Closed Principle for Languages with Open Classes" by crack</title>
      <description>&lt;p&gt;Good artical,I learn something!)) very cool!&lt;/p&gt;</description>
      <pubDate>Wed, 08 Feb 2012 10:10:53 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:11befe74-4fc0-469f-9912-e9236c30aea5</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/04/the-open-closed-principle-for-languages-with-open-classes#comment-202438</link>
    </item>
    <item>
      <title>"The Open-Closed Principle for Languages with Open Classes" by Gerry</title>
      <description>&lt;p&gt;Good Information Very nice post&lt;/p&gt;</description>
      <pubDate>Sat, 21 Jan 2012 02:59:25 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:8679086b-c4f6-461f-83e5-3f8b58a378a7</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/04/the-open-closed-principle-for-languages-with-open-classes#comment-198739</link>
    </item>
    <item>
      <title>"The Open-Closed Principle for Languages with Open Classes" by backup iphone sms</title>
      <description>&lt;p&gt;Take effect to save the file and you can retrieve them when necessary.&lt;/p&gt;</description>
      <pubDate>Wed, 11 Jan 2012 05:23:26 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:d6517ea0-3edd-4e52-8312-8ea08897c16e</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/04/the-open-closed-principle-for-languages-with-open-classes#comment-196947</link>
    </item>
    <item>
      <title>"The Open-Closed Principle for Languages with Open Classes" by tv guide</title>
      <description>&lt;p&gt;thank you once more! great job!&lt;/p&gt;</description>
      <pubDate>Sat, 26 Nov 2011 10:08:05 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:254c2d6b-9e56-4331-8619-03425979f882</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/04/the-open-closed-principle-for-languages-with-open-classes#comment-178757</link>
    </item>
    <item>
      <title>"The Open-Closed Principle for Languages with Open Classes" by Richard</title>
      <description>&lt;p&gt;Great article, I was just sitting in some &lt;a href="http://www.cozydays.com/outdoor-furniture/balcony-furniture/" rel="nofollow"&gt;outdoor chairs&lt;/a&gt; in my university and found this. Thank you! Just what I was looking for.&lt;/p&gt;</description>
      <pubDate>Fri, 11 Nov 2011 15:25:27 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:f321c93c-e5c5-423f-b420-4c80994e373a</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/04/the-open-closed-principle-for-languages-with-open-classes#comment-171434</link>
    </item>
    <item>
      <title>"The Open-Closed Principle for Languages with Open Classes" by canada goose jakke</title>
      <description>&lt;p&gt;Om &lt;a href="http://www.canadagooseoutletdk.com/" rel="nofollow"&gt;canada goose jakke&lt;/a&gt; sp&#248;rgsm&#229;l vedr&#248;rende f&#248;devaresikkerhed, &lt;a href="http://www.canadagooseoutletdk.com/" rel="nofollow"&gt;canada goose&lt;/a&gt; Gruppen af otte forventes &lt;a href="http://www.canadagooseoutletdk.com/" rel="nofollow"&gt;canada goose outlet&lt;/a&gt; at lancere &amp;#8220;Aquila f&#248;devarer &lt;a href="http://www.belstaff-outlet.de/" rel="nofollow"&gt;belstaff outlet&lt;/a&gt; security initiative&amp;#8221;, vil v&#230;re os $ 10-15 milliarderi &lt;a href="http://www.belstaff-sito-ufficiale.com/" rel="nofollow"&gt;belstaff&lt;/a&gt; st&#248;tte beg&#229;et for landbrugs udvikling i fattigere &lt;a href="http://www.canadagooseoutletdk.com/canada-goose-ungdom-freestyle-400/" rel="nofollow"&gt;Canada Goose Ungdom Freestyle&lt;/a&gt; lande.Med hensyn  til finansforordningen forventes gruppen af otte ledere at v&#230;re &amp;#8220;Lecce rammen&amp;#8221; &lt;a href="http://www.canadagooseoutletdk.com/hot-salg-3700/" rel="nofollow"&gt;Hot Salg&lt;/a&gt; p&#229; grundlag af vedtagelsen &lt;a href="http://www.canadagooseoutletdk.com/" rel="nofollow"&gt;canada goose jakke&lt;/a&gt; af en politikfil, cross-dom&#230;ne &lt;a href="http://www.canadagooseoutletdk.com/canada-goose-banff-parka-2100/" rel="nofollow"&gt;Canada Goose Banff Parka&lt;/a&gt; for at styrke tilsynet med banker, institutioner og virksomhedsledelse, og I am legend og har &lt;a href="http://www.canadagooseoutletdk.com/hot-salg-3700/" rel="nofollow"&gt;Hot Salg&lt;/a&gt; for nylig udgivet selvmord.I dag, efter&#229;ret &lt;a href="http://www.canadagooseoutletdk.com/canada-goose-handsker-300/" rel="nofollow"&gt;Canada Goose Handsker&lt;/a&gt; p&#229; ny hylden, ikke  kun mode, men  vil holde dig tilsluttet p&#229; legender af l&#230;der.&lt;/p&gt;</description>
      <pubDate>Sun, 30 Oct 2011 19:55:03 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:959c760a-2080-4dd7-9fb2-fad878692c15</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/04/the-open-closed-principle-for-languages-with-open-classes#comment-165786</link>
    </item>
    <item>
      <title>"The Open-Closed Principle for Languages with Open Classes" by christian louboutin</title>
      <description>&lt;p&gt;Good artical,I learn something!&lt;/p&gt;</description>
      <pubDate>Sun, 30 Oct 2011 05:05:02 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:bc65b847-e0a6-407d-9c57-6701b01979c7</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/04/the-open-closed-principle-for-languages-with-open-classes#comment-165689</link>
    </item>
    <item>
      <title>"The Open-Closed Principle for Languages with Open Classes" by flac converter</title>
      <description>&lt;p&gt;Thank you for sharing, I&#8217;ll definitely dig deeper into it.&lt;/p&gt;</description>
      <pubDate>Thu, 27 Oct 2011 02:47:40 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:668cfab3-06a4-4417-b705-6e44e23e96ea</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/04/the-open-closed-principle-for-languages-with-open-classes#comment-164472</link>
    </item>
    <item>
      <title>"The Open-Closed Principle for Languages with Open Classes" by ysbearing</title>
      <description>&lt;p&gt;Slewing ring is also called slewing bearing, some people called: rotary support, swing support. English Name: slewing bearing or slewing ring bearing or turn table bearing, slewing ring in the real industrial applications is very wide.&lt;/p&gt;</description>
      <pubDate>Wed, 19 Oct 2011 03:28:49 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:09bbc1b3-654c-416c-af55-bba9875b3925</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/04/the-open-closed-principle-for-languages-with-open-classes#comment-159513</link>
    </item>
    <item>
      <title>"The Open-Closed Principle for Languages with Open Classes" by Ashley Bowling</title>
      <description>&lt;p&gt;When the western sky is especially clear, there is often a red sunset.&lt;/p&gt;</description>
      <pubDate>Sun, 16 Oct 2011 05:21:08 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:0f018aaf-1e8f-4558-a80a-ed1d5d7a25ac</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/04/the-open-closed-principle-for-languages-with-open-classes#comment-157343</link>
    </item>
    <item>
      <title>"The Open-Closed Principle for Languages with Open Classes" by Evering2010</title>
      <description>&lt;p&gt;Thank you for sharing them with us , I think it&amp;#8217;s worth reading&lt;/p&gt;</description>
      <pubDate>Sat, 15 Oct 2011 03:39:11 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:645a8663-a1dc-47ff-9d16-e1dfebf43d6a</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/04/the-open-closed-principle-for-languages-with-open-classes#comment-157026</link>
    </item>
    <item>
      <title>"The Open-Closed Principle for Languages with Open Classes" by best sleep aid</title>
      <description>&lt;p&gt;hmm ,i&amp;#8217;m not sure if this is what i&amp;#8217;m looking for but anyway this is interresting and could be useful some day,thanks for taking time to write such cool stuff&lt;/p&gt;</description>
      <pubDate>Fri, 30 Sep 2011 12:39:58 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:bd5a598e-10a4-4069-89b5-51f7c3f6ef83</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/04/the-open-closed-principle-for-languages-with-open-classes#comment-148566</link>
    </item>
    <item>
      <title>"The Open-Closed Principle for Languages with Open Classes" by Uniformes De F&#250;tbol </title>
      <description>&lt;p&gt;I really like your article. Please keep on writing excellent posts. To find out more please go to 
&lt;a href="http://baratasfutbolcamiseta.es/" rel="nofollow"&gt;http://baratasfutbolcamiseta.es/&lt;/a&gt;
&lt;a href="http://baratasfutbolcamiseta.es/category.php?id=9" rel="nofollow"&gt;http://baratasfutbolcamiseta.es/category.php?id=9&lt;/a&gt;
&lt;a href="http://baratasfutbolcamiseta.es/goods.php?id=76" rel="nofollow"&gt;http://baratasfutbolcamiseta.es/goods.php?id=76&lt;/a&gt;
&lt;a href="http://www.camisetas-de-futbol.es/" rel="nofollow"&gt;http://www.camisetas-de-futbol.es/&lt;/a&gt;
&lt;a href="http://www.camisetas-de-futbol.es/category-66-b0-FIFA+del+Copa+del+Mundo.html" rel="nofollow"&gt;http://www.camisetas-de-futbol.es/category-66-b0-FIFA+del+Copa+del+Mundo.html&lt;/a&gt;
&lt;a href="http://www.camisetas-de-futbol.es/goods-4080-10+11+Holland+Tercel+Blanco+camiseta+del+futbol.html" rel="nofollow"&gt;http://www.camisetas-de-futbol.es/goods-4080-10+11+Holland+Tercel+Blanco+camiseta+del+futbol.html&lt;/a&gt;
&lt;a href="http://www.camisetasfutbolchina.es/" rel="nofollow"&gt;http://www.camisetasfutbolchina.es/&lt;/a&gt;
&lt;a href="http://www.camisetasfutbolchina.es/category-122-b0-Real+Madrid.html" rel="nofollow"&gt;http://www.camisetasfutbolchina.es/category-122-b0-Real+Madrid.html&lt;/a&gt;
&lt;a href="http://www.camisetasfutbolchina.es/goods-4605-11+12+England+Titular+Blando+camiseta+del+futbol.html" rel="nofollow"&gt;http://www.camisetasfutbolchina.es/goods-4605-11+12+England+Titular+Blando+camiseta+del+futbol.html&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Fri, 16 Sep 2011 07:21:06 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:512885b8-6f4c-44ab-a0ee-1f4fce65641f</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/04/the-open-closed-principle-for-languages-with-open-classes#comment-141380</link>
    </item>
    <item>
      <title>"The Open-Closed Principle for Languages with Open Classes" by Patio Furniture</title>
      <description>&lt;p&gt;Very useful! I was actually looking for something like this. Very efficient! thank you!&lt;/p&gt;</description>
      <pubDate>Wed, 07 Sep 2011 14:16:21 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:212d88f2-1b1e-4d11-a6cc-d2e26c5993fc</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/04/the-open-closed-principle-for-languages-with-open-classes#comment-138183</link>
    </item>
    <item>
      <title>"The Open-Closed Principle for Languages with Open Classes" by Crystal Jewellery</title>
      <description>&lt;p&gt;Great post! Nice and informative, I really enjoyed reading it and will certainly share this post with my friends .  Read everything  about  &lt;a href="http://www.jewelleryxy.com/colors-of-gold.html" rel="nofollow"&gt;the different colors of gold&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Thu, 18 Aug 2011 12:38:13 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:1f551b0f-71f3-4799-9606-010d3e4542af</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/04/the-open-closed-principle-for-languages-with-open-classes#comment-129495</link>
    </item>
    <item>
      <title>"The Open-Closed Principle for Languages with Open Classes" by Android apps developer</title>
      <description>&lt;p&gt;This kind of post are always inspiring and  i prefer to read this quality content.Its very Interesting open closed object technology&#8230; I am surprised to see this information on your blog.. This is amazing blog&#8230;thank u&amp;#8230;&lt;/p&gt;</description>
      <pubDate>Thu, 11 Aug 2011 22:39:14 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:03094268-5111-4866-ab57-e8a31acea168</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/04/the-open-closed-principle-for-languages-with-open-classes#comment-126983</link>
    </item>
    <item>
      <title>"The Open-Closed Principle for Languages with Open Classes" by Kevin</title>
      <description>&lt;p&gt;Good Information Very nice post&lt;/p&gt;</description>
      <pubDate>Sat, 30 Jul 2011 00:31:27 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:5c19a5c3-06df-4875-a743-4eee4e12828b</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/04/the-open-closed-principle-for-languages-with-open-classes#comment-122128</link>
    </item>
    <item>
      <title>"The Open-Closed Principle for Languages with Open Classes" by John</title>
      <description>&lt;p&gt;good post, i think so.Thank you!&lt;/p&gt;</description>
      <pubDate>Sat, 30 Jul 2011 00:29:46 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:ceebea17-d14b-47a9-899f-ee7854a195f9</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/04/the-open-closed-principle-for-languages-with-open-classes#comment-122127</link>
    </item>
    <item>
      <title>"The Open-Closed Principle for Languages with Open Classes" by audio converter</title>
      <description>&lt;p&gt;you have posted such a effectful article that it will certainly help me.&lt;/p&gt;</description>
      <pubDate>Sat, 30 Jul 2011 00:26:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:752d98a4-fe71-448c-929b-41b9832c0962</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/04/the-open-closed-principle-for-languages-with-open-classes#comment-122124</link>
    </item>
    <item>
      <title>"The Open-Closed Principle for Languages with Open Classes" by casio</title>
      <description>&lt;p&gt;thanks its nice great site and i have added in my favorites list&lt;/p&gt;</description>
      <pubDate>Thu, 07 Jul 2011 06:52:10 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:5e1c68e2-5cfc-4133-8c87-da59ec3c9ac3</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/04/the-open-closed-principle-for-languages-with-open-classes#comment-115765</link>
    </item>
    <item>
      <title>"The Open-Closed Principle for Languages with Open Classes" by commission predators</title>
      <description>&lt;p&gt;What a wonderful article! And are doing well on the whole, but their work also has shortcomings.&lt;/p&gt;</description>
      <pubDate>Fri, 17 Jun 2011 11:30:28 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:5fcaae2b-28db-451b-9596-0101eae61dee</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/04/the-open-closed-principle-for-languages-with-open-classes#comment-111810</link>
    </item>
    <item>
      <title>"The Open-Closed Principle for Languages with Open Classes" by virtual spokesperson</title>
      <description>&lt;p&gt;where can i read more about Oriented Design inside the dynamic languages world, mainly the Ruby world.&lt;/p&gt;</description>
      <pubDate>Mon, 13 Jun 2011 10:47:44 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:7ecfff16-462b-416a-8eb6-838b5d73ddc4</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/04/the-open-closed-principle-for-languages-with-open-classes#comment-110634</link>
    </item>
    <item>
      <title>"The Open-Closed Principle for Languages with Open Classes" by beats by dr dre headphones</title>
      <description>&lt;p&gt;I attempted these &lt;a href="http://www.drebeatsstudio.com/beats-by-dr-dre-studio-c-3.html" rel="nofollow"&gt;beats by dr dre studio&lt;/a&gt; out in several genres thinking about which i listen to an eclectic mix Beats By Dr Dre. a washing cloth as well as the manual. Do not purchase any &lt;a href="http://www.drebeatsstudio.com/monster-beats-by-dr-dre-solo-headphones-purple-p-41.html" rel="nofollow"&gt;beats by dr dre solo purple&lt;/a&gt; products inside the internet unless you&amp;#8217;re getting from an Authorized internet DealerBeats By Dre Just Solo. We are reliable provide good &lt;a href="http://www.drebeatsstudio.com/monster-beats-by-dr-dre-pro-headphones-black-p-15.html" rel="nofollow"&gt;beats by dr dre pro black&lt;/a&gt; by reduced price.&lt;/p&gt;</description>
      <pubDate>Thu, 09 Jun 2011 03:10:45 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:12e8dc3a-b624-4c51-9636-91786e1cc1f5</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/04/the-open-closed-principle-for-languages-with-open-classes#comment-109364</link>
    </item>
    <item>
      <title>"The Open-Closed Principle for Languages with Open Classes" by Jewellery</title>
      <description>&lt;p&gt;Online UK costume and fashion jewellery shop with,
Online UK costume and fashion jewellery shop with,
Online UK costume and fashion jewellery shop with,
Online UK costume and fashion jewellery shop with,&lt;/p&gt;</description>
      <pubDate>Sat, 04 Jun 2011 06:03:16 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:2d64e534-3c54-4460-8a2d-1956d6a7ef12</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/04/the-open-closed-principle-for-languages-with-open-classes#comment-108063</link>
    </item>
    <item>
      <title>"The Open-Closed Principle for Languages with Open Classes" by f350 leveling kit</title>
      <description>&lt;p&gt;I love reading your article and I hope I can read more. Thanks :-)&lt;/p&gt;</description>
      <pubDate>Fri, 13 May 2011 01:54:42 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:3ee5233d-7f0d-47c1-b796-e82d4b2492dd</guid>
      <link>http://blog.objectmentor.com/articles/2008/09/04/the-open-closed-principle-for-languages-with-open-classes#comment-99285</link>
    </item>
  </channel>
</rss>

