<?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/"
		>
<channel>
	<title>Comments on: NotImplementedException and the Interface Segregation Principle</title>
	<atom:link href="http://lostechies.com/jimmybogard/2008/10/12/notimplementedexception-and-the-interface-segregation-principle/feed/" rel="self" type="application/rss+xml" />
	<link>http://lostechies.com/jimmybogard/2008/10/12/notimplementedexception-and-the-interface-segregation-principle/</link>
	<description>Strong opinions, weakly held</description>
	<lastBuildDate>Sun, 19 May 2013 03:22:18 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
	<item>
		<title>By: bogardj</title>
		<link>http://lostechies.com/jimmybogard/2008/10/12/notimplementedexception-and-the-interface-segregation-principle/#comment-942</link>
		<dc:creator>bogardj</dc:creator>
		<pubDate>Tue, 19 May 2009 18:40:04 +0000</pubDate>
		<guid isPermaLink="false">/blogs/jimmy_bogard/archive/2008/10/12/notimplementedexception-and-the-interface-segregation-principle.aspx#comment-942</guid>
		<description>@etro

This isn&#039;t necessarily tied to the .NET version of an interface.  It applies to abstract classes as well.

If an interface has a bunch of methods that I don&#039;t want to implement, doesn&#039;t that mean that the interface doesn&#039;t apply to me?</description>
		<content:encoded><![CDATA[<p>@etro</p>
<p>This isn&#8217;t necessarily tied to the .NET version of an interface.  It applies to abstract classes as well.</p>
<p>If an interface has a bunch of methods that I don&#8217;t want to implement, doesn&#8217;t that mean that the interface doesn&#8217;t apply to me?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: etro</title>
		<link>http://lostechies.com/jimmybogard/2008/10/12/notimplementedexception-and-the-interface-segregation-principle/#comment-941</link>
		<dc:creator>etro</dc:creator>
		<pubDate>Tue, 19 May 2009 18:26:22 +0000</pubDate>
		<guid isPermaLink="false">/blogs/jimmy_bogard/archive/2008/10/12/notimplementedexception-and-the-interface-segregation-principle.aspx#comment-941</guid>
		<description>So the real compliant here is the way interfaces work in the first place? You want to implement an interface, not implement all of it, not tell anyone you are not implementing it, and then expect every consumer to understand that...

I suppose an argument could be made that the default behaivor of an non-fully-implemented interface could be to &quot;softly&quot; back out of the call and make everyone play nice... but isn&#039;t this sort of the POINT of interfaces? So that everyone is assured that they know all the calls to get something done, just not the implementation?
</description>
		<content:encoded><![CDATA[<p>So the real compliant here is the way interfaces work in the first place? You want to implement an interface, not implement all of it, not tell anyone you are not implementing it, and then expect every consumer to understand that&#8230;</p>
<p>I suppose an argument could be made that the default behaivor of an non-fully-implemented interface could be to &#8220;softly&#8221; back out of the call and make everyone play nice&#8230; but isn&#8217;t this sort of the POINT of interfaces? So that everyone is assured that they know all the calls to get something done, just not the implementation?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jimmy Bogard</title>
		<link>http://lostechies.com/jimmybogard/2008/10/12/notimplementedexception-and-the-interface-segregation-principle/#comment-940</link>
		<dc:creator>Jimmy Bogard</dc:creator>
		<pubDate>Fri, 17 Oct 2008 15:25:42 +0000</pubDate>
		<guid isPermaLink="false">/blogs/jimmy_bogard/archive/2008/10/12/notimplementedexception-and-the-interface-segregation-principle.aspx#comment-940</guid>
		<description>@Ramon

That still doesn&#039;t solve the ISP problem.  If I have to throw exceptions to ensure certain features aren&#039;t used, by definition, it&#039;s an ISP violation.</description>
		<content:encoded><![CDATA[<p>@Ramon</p>
<p>That still doesn&#8217;t solve the ISP problem.  If I have to throw exceptions to ensure certain features aren&#8217;t used, by definition, it&#8217;s an ISP violation.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ramon Smits</title>
		<link>http://lostechies.com/jimmybogard/2008/10/12/notimplementedexception-and-the-interface-segregation-principle/#comment-939</link>
		<dc:creator>Ramon Smits</dc:creator>
		<pubDate>Fri, 17 Oct 2008 14:15:34 +0000</pubDate>
		<guid isPermaLink="false">/blogs/jimmy_bogard/archive/2008/10/12/notimplementedexception-and-the-interface-segregation-principle.aspx#comment-939</guid>
		<description>That&#039;s why you should use NotSupportedException instead of NotImplementedException.

You start with NotImplemented and when you decide that a certain method/feature is not needed then make the decision to not support the feature at all thus throwing NotSupportedException together with the reason for that.</description>
		<content:encoded><![CDATA[<p>That&#8217;s why you should use NotSupportedException instead of NotImplementedException.</p>
<p>You start with NotImplemented and when you decide that a certain method/feature is not needed then make the decision to not support the feature at all thus throwing NotSupportedException together with the reason for that.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jimmy Bogard</title>
		<link>http://lostechies.com/jimmybogard/2008/10/12/notimplementedexception-and-the-interface-segregation-principle/#comment-938</link>
		<dc:creator>Jimmy Bogard</dc:creator>
		<pubDate>Mon, 13 Oct 2008 02:44:52 +0000</pubDate>
		<guid isPermaLink="false">/blogs/jimmy_bogard/archive/2008/10/12/notimplementedexception-and-the-interface-segregation-principle.aspx#comment-938</guid>
		<description>@Derick

Yeah I hate that.  I want it to fail because the assertion fails, not because of some garbage in the SUT.</description>
		<content:encoded><![CDATA[<p>@Derick</p>
<p>Yeah I hate that.  I want it to fail because the assertion fails, not because of some garbage in the SUT.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Derick Bailey</title>
		<link>http://lostechies.com/jimmybogard/2008/10/12/notimplementedexception-and-the-interface-segregation-principle/#comment-937</link>
		<dc:creator>Derick Bailey</dc:creator>
		<pubDate>Mon, 13 Oct 2008 00:53:04 +0000</pubDate>
		<guid isPermaLink="false">/blogs/jimmy_bogard/archive/2008/10/12/notimplementedexception-and-the-interface-segregation-principle.aspx#comment-937</guid>
		<description>&quot;The NotImplementedExceptions are noisy, and I’d rather never see one in code (even temporarily in a test). &quot;

amen to that! I can&#039;t stand the default &quot;throw NotImplementedException&quot; that Resharper puts into generated code. The first thing I do after generating any method or property is get rid of this and put in code that I know will run, but fail. </description>
		<content:encoded><![CDATA[<p>&#8220;The NotImplementedExceptions are noisy, and I’d rather never see one in code (even temporarily in a test). &#8221;</p>
<p>amen to that! I can&#8217;t stand the default &#8220;throw NotImplementedException&#8221; that Resharper puts into generated code. The first thing I do after generating any method or property is get rid of this and put in code that I know will run, but fail. </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: smaclell</title>
		<link>http://lostechies.com/jimmybogard/2008/10/12/notimplementedexception-and-the-interface-segregation-principle/#comment-936</link>
		<dc:creator>smaclell</dc:creator>
		<pubDate>Sun, 12 Oct 2008 19:49:28 +0000</pubDate>
		<guid isPermaLink="false">/blogs/jimmy_bogard/archive/2008/10/12/notimplementedexception-and-the-interface-segregation-principle.aspx#comment-936</guid>
		<description>It always makes me chuckle but .NET actually provides an exception specifically intended for this case, where you want to implement something but don&#039;t want to support specific functionality. System.NotSupportedException.
</description>
		<content:encoded><![CDATA[<p>It always makes me chuckle but .NET actually provides an exception specifically intended for this case, where you want to implement something but don&#8217;t want to support specific functionality. System.NotSupportedException.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
