<?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: (Abstract) Base Classes vs. Interfaces</title>
	<atom:link href="http://lingpipe-blog.com/2008/03/19/abstract-base-classes-vs-interfaces/feed/" rel="self" type="application/rss+xml" />
	<link>http://lingpipe-blog.com/2008/03/19/abstract-base-classes-vs-interfaces/</link>
	<description>Natural Language Processing and Text Analytics</description>
	<lastBuildDate>Sat, 04 Feb 2012 20:56:48 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: Kirill Osenkov</title>
		<link>http://lingpipe-blog.com/2008/03/19/abstract-base-classes-vs-interfaces/#comment-2022</link>
		<dc:creator><![CDATA[Kirill Osenkov]]></dc:creator>
		<pubDate>Thu, 20 Mar 2008 01:57:00 +0000</pubDate>
		<guid isPermaLink="false">http://lingpipe.wordpress.com/?p=81#comment-2022</guid>
		<description><![CDATA[C# has extension methods - you can add behavior to existing types without changing them :) Even without extension methods, you could probably use static methods to achieve what you want.

Yes, I think a vector should be a class - you don&#039;t expect to be two different entities to act like a vector - there&#039;s only one clearly defined entity, so making it a base class is a good idea.

One more interesting thing that I found: usually, if a type name ends with &quot;able&quot;, it it probably better as an interface. It&#039;s not always true, but works pretty well in general.]]></description>
		<content:encoded><![CDATA[<p>C# has extension methods &#8211; you can add behavior to existing types without changing them :) Even without extension methods, you could probably use static methods to achieve what you want.</p>
<p>Yes, I think a vector should be a class &#8211; you don&#8217;t expect to be two different entities to act like a vector &#8211; there&#8217;s only one clearly defined entity, so making it a base class is a good idea.</p>
<p>One more interesting thing that I found: usually, if a type name ends with &#8220;able&#8221;, it it probably better as an interface. It&#8217;s not always true, but works pretty well in general.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

