<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: Programming by difference</title>
	<atom:link href="http://twasink.net/2005/02/07/programming-by-difference/feed/" rel="self" type="application/rss+xml" />
	<link>http://twasink.net/2005/02/07/programming-by-difference/</link>
	<description>Robert&#039;s Rambling Ruminations Regarding Reality...</description>
	<lastBuildDate>Thu, 12 Apr 2012 16:31:52 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: Robert Watkins</title>
		<link>http://twasink.net/2005/02/07/programming-by-difference/#comment-87</link>
		<dc:creator><![CDATA[Robert Watkins]]></dc:creator>
		<pubDate>Wed, 09 Feb 2005 15:53:32 +0000</pubDate>
		<guid isPermaLink="false">http://twasink.net/wp/?p=105#comment-87</guid>
		<description><![CDATA[Yes, they can (at least Eclipse can). Unfortunately, for larger classes, excessive delegation significantly impairs readability. Again, the issue here is overly large classes.

(In Eclipse, you can select a member variable of a class, and automatically generate delegates to it)

]]></description>
		<content:encoded><![CDATA[<p>Yes, they can (at least Eclipse can). Unfortunately, for larger classes, excessive delegation significantly impairs readability. Again, the issue here is overly large classes.</p>
<p>(In Eclipse, you can select a member variable of a class, and automatically generate delegates to it)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael</title>
		<link>http://twasink.net/2005/02/07/programming-by-difference/#comment-86</link>
		<dc:creator><![CDATA[Michael]]></dc:creator>
		<pubDate>Wed, 09 Feb 2005 14:21:10 +0000</pubDate>
		<guid isPermaLink="false">http://twasink.net/wp/?p=105#comment-86</guid>
		<description><![CDATA[Can IDEs help with the tedium of using composition? Tool based code generation (not sure)?
]]></description>
		<content:encoded><![CDATA[<p>Can IDEs help with the tedium of using composition? Tool based code generation (not sure)?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert</title>
		<link>http://twasink.net/2005/02/07/programming-by-difference/#comment-85</link>
		<dc:creator><![CDATA[Robert]]></dc:creator>
		<pubDate>Tue, 08 Feb 2005 21:09:58 +0000</pubDate>
		<guid isPermaLink="false">http://twasink.net/wp/?p=105#comment-85</guid>
		<description><![CDATA[It depends, really...

Implementation inheritance is not a core pillar of OO. Polymorphic behaviour depends on type inheritance, not implementation inheritance. Implementation inheritance provides one form of aggregation of behaviour; the other being aggregation via composition (e.g. delegation).

When you have classes with mostly similar behaviour, but some differences, composition gets a bit painful. You end up delegating most of the class, but leaving a little bit. In these scenarios, implementation inheritance makes a lot of sense. In general, if you are overriding less than about half of the behaviour of the parent, stick with implementation.

The real issue (and the cause of the abuse) is classes that have too much behaviour. Too much behaviour makes composition too painful (too many methods to delegate), but makes an inheritance hierarchy too convulted.
]]></description>
		<content:encoded><![CDATA[<p>It depends, really&#8230;</p>
<p>Implementation inheritance is not a core pillar of OO. Polymorphic behaviour depends on type inheritance, not implementation inheritance. Implementation inheritance provides one form of aggregation of behaviour; the other being aggregation via composition (e.g. delegation).</p>
<p>When you have classes with mostly similar behaviour, but some differences, composition gets a bit painful. You end up delegating most of the class, but leaving a little bit. In these scenarios, implementation inheritance makes a lot of sense. In general, if you are overriding less than about half of the behaviour of the parent, stick with implementation.</p>
<p>The real issue (and the cause of the abuse) is classes that have too much behaviour. Too much behaviour makes composition too painful (too many methods to delegate), but makes an inheritance hierarchy too convulted.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael</title>
		<link>http://twasink.net/2005/02/07/programming-by-difference/#comment-84</link>
		<dc:creator><![CDATA[Michael]]></dc:creator>
		<pubDate>Tue, 08 Feb 2005 19:59:28 +0000</pubDate>
		<guid isPermaLink="false">http://twasink.net/wp/?p=105#comment-84</guid>
		<description><![CDATA[Perhaps &quot;Greg&#039;s&quot; restriction is not such a bad idea - it removes the temptation.

To paraphrase hitchhikers guide to the galaxy:

Developers must not use implementation inheritence ever unless one of the following is true:
1) Their life depends on them using it
2) Their life would otherwise depend on it if they weren&#039;t able to use it
3) They really really want to.

VB (pre .Net) had only interface inheritance (not sure about VB.Net) - I suppose that was a good thing, as otherwise it would have been like a kid with a new toy, as it was a lot of peoples only experience with OO in corporate development.
]]></description>
		<content:encoded><![CDATA[<p>Perhaps &#8220;Greg&#8217;s&#8221; restriction is not such a bad idea &#8211; it removes the temptation.</p>
<p>To paraphrase hitchhikers guide to the galaxy:</p>
<p>Developers must not use implementation inheritence ever unless one of the following is true:<br />
1) Their life depends on them using it<br />
2) Their life would otherwise depend on it if they weren&#8217;t able to use it<br />
3) They really really want to.</p>
<p>VB (pre .Net) had only interface inheritance (not sure about VB.Net) &#8211; I suppose that was a good thing, as otherwise it would have been like a kid with a new toy, as it was a lot of peoples only experience with OO in corporate development.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

