<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0">
  <channel>
    <title>DotNetKicks.com - Stories tagged with Interface</title>
    <description>the latest stories tagged with 'Interface' from DotNetKicks.com</description>
    <link>http://www.dotnetkicks.com/</link>
    <language>en-us</language>
    <copyright>Atweb Publishing Ltd.</copyright>
    <docs>http://backend.userland.com/rss</docs>
    <generator>DotNetKicks.com - .NET links, community driven</generator>
    <ttl>30</ttl>
    <item>
      <title>Amazing Strategy!!</title>
      <description>I recently downloaded a cool fighter plane game (iFighter lite) on my iPhone. As I started playing, I felt that plane is

moving a bit slow!! But soon enough I saw a little perk on the screen and I flew over it and suddenly plane's speed increased. Soon enough, enemy planes started attacking me and I shot back at them. But again I felt my bullets were too slow! I shot down few planes and a new perk showed up on the screen. As soon as I collected it, my plane started shooting more bullets per attack!!

Yeeee hoo!!! I started enjoying this and before I knew, I by mistake collected a &amp;quot;skull and bones&amp;quot; perk and &amp;quot;darrnn!!&amp;quot; I said, cause I knew now my plane had lost those powerful bullets :(

Now, of course I am not writing a review about the human behavior while playing games on iPhone! But what I am trying to highlight here is the plane's ability to act differently in certain conditions! And that's something the Strategy Design Pattern allows us to do. I'll try to use this game as an analogy to discuss about Strategy Design Pattern.

Definition: Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independently from clients that use it.
 &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fbeyondrelational.com%2fblogs%2fdeepakpalkar%2farchive%2f2010%2f04%2f27%2famazing-strategy.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fbeyondrelational.com%2fblogs%2fdeepakpalkar%2farchive%2f2010%2f04%2f27%2famazing-strategy.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/patterns/Amazing_Strategy</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/patterns/Amazing_Strategy</guid>
      <pubDate>Sat, 01 May 2010 15:17:55 GMT</pubDate>
    </item>
    <item>
      <title>Amazing Strategy!!</title>
      <description>I recently downloaded a cool fighter plane game (iFighter lite) on my iPhone. As I started playing, I felt that plane is

moving a bit slow!! But soon enough I saw a little perk on the screen and I flew over it and suddenly plane's speed increased. Soon enough, enemy planes started attacking me and I shot back at them. But again I felt my bullets were too slow! I shot down few planes and a new perk showed up on the screen. As soon as I collected it, my plane started shooting more bullets per attack!!

Yeeee hoo!!! I started enjoying this and before I knew, I by mistake collected a &amp;quot;skull and bones&amp;quot; perk and &amp;quot;darrnn!!&amp;quot; I said, cause I knew now my plane had lost those powerful bullets :(

Now, of course I am not writing a review about the human behavior while playing games on iPhone! But what I am trying to highlight here is the plane's ability to act differently in certain conditions! And that's something the Strategy Design Pattern allows us to do. I'll try to use this game as an analogy to discuss about Strategy Design Pattern.

Definition: Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independently from clients that use it.
 &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fbeyondrelational.com%2fblogs%2fdeepakpalkar%2farchive%2f2010%2f04%2f27%2famazing-strategy.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fbeyondrelational.com%2fblogs%2fdeepakpalkar%2farchive%2f2010%2f04%2f27%2famazing-strategy.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/patterns/Amazing_Strategy</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/patterns/Amazing_Strategy</guid>
      <pubDate>Sat, 01 May 2010 15:17:55 GMT</pubDate>
    </item>
    <item>
      <title>A new interface for mobile phones</title>
      <description>Thoughts on how a mobile phone's camera could be used to create a point and click interface (without a touch screen). &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblog.dotnettech.net%2farchive%2f2009%2f06%2f25%2fa-new-interface-for-mobile-phones.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblog.dotnettech.net%2farchive%2f2009%2f06%2f25%2fa-new-interface-for-mobile-phones.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/compactframework/A_new_interface_for_mobile_phones</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/compactframework/A_new_interface_for_mobile_phones</guid>
      <pubDate>Thu, 25 Jun 2009 13:24:16 GMT</pubDate>
    </item>
    <item>
      <title>Building a Progressive Fluent Interface</title>
      <description>Taking a look at how to build a Progressive Fluent Interface which is a DSL where the options can and will change as you progress through the syntax. This is a useful form of a fluent interface if the want to be able to skillfully guide the user down only one path at a time. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.dimecasts.net%2fCasts%2fCastDetails%2f95"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.dimecasts.net%2fCasts%2fCastDetails%2f95" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/architecture/Building_a_Progressive_Fluent_Interface</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/architecture/Building_a_Progressive_Fluent_Interface</guid>
      <pubDate>Tue, 24 Mar 2009 21:31:32 GMT</pubDate>
    </item>
    <item>
      <title>Learning how to create a simple Fluent DSL via Method Chaining</title>
      <description>Take a look at how to create a simple Fluent DSL which is built via Method Chaining.

We will build this DSL from the ground up and talk about the various decisions which were made along the way. This is just a simple example of how you can create a internal DSL for your application with very little effort. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.dimecasts.net%2fCasts%2fCastDetails%2f84"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.dimecasts.net%2fCasts%2fCastDetails%2f84" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/altnet/Learning_how_to_create_a_simple_Fluent_DSL_via_Method_Chaining</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/altnet/Learning_how_to_create_a_simple_Fluent_DSL_via_Method_Chaining</guid>
      <pubDate>Wed, 11 Feb 2009 00:01:10 GMT</pubDate>
    </item>
    <item>
      <title>Skinning the Cat with Fluent NHibernate</title>
      <description>As you may have noticed, I have become interested in the concept of Object Relational Mapping and the NHibernate framework. One of the more painful/tedious aspects of using NHibernate is hand writing the xml mapping files. That is why I got excited when I heard that Jeremy Miller was open sourcing his mapping generation libraries.

 &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.iamnotmyself.com%2f2008%2f08%2f07%2fSkinningTheCatWithFluentNHibernate.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.iamnotmyself.com%2f2008%2f08%2f07%2fSkinningTheCatWithFluentNHibernate.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/database/Skinning_the_Cat_with_Fluent_NHibernate</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/database/Skinning_the_Cat_with_Fluent_NHibernate</guid>
      <pubDate>Fri, 08 Aug 2008 05:01:02 GMT</pubDate>
    </item>
    <item>
      <title>Choosing: Interface vs. Abstract Class</title>
      <description>When to use which? Where's the difference? What are the best practices recommended by .NET architects? This and some personal experiences in a blog posting by Kirill Osenkov &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fkirillosenkov.blogspot.com%2f2007%2f08%2fchoosing-interface-vs-abstract-class.html"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fkirillosenkov.blogspot.com%2f2007%2f08%2fchoosing-interface-vs-abstract-class.html" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/patterns/Choosing_Interface_vs_Abstract_Class</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/patterns/Choosing_Interface_vs_Abstract_Class</guid>
      <pubDate>Mon, 03 Sep 2007 08:46:03 GMT</pubDate>
    </item>
    <item>
      <title>extend an explicitly implemented interface</title>
      <description>extend an explicitly implemented interface &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fweblogs.asp.net%2fasmith%2farchive%2f2003%2f07%2f11%2f10005.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fweblogs.asp.net%2fasmith%2farchive%2f2003%2f07%2f11%2f10005.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/csharp/extend_an_explicitly_implemented_interface</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/csharp/extend_an_explicitly_implemented_interface</guid>
      <pubDate>Mon, 26 Feb 2007 08:24:19 GMT</pubDate>
    </item>
    <item>
      <title>Implicit and Explicit Interface Implementations</title>
      <description>A discussion of the subtleties of implicit and explicit interface implementations in C#. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblogs.msdn.com%2fmhop%2farchive%2f2006%2f12%2f12%2fimplicit-and-explicit-interface-implementations.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblogs.msdn.com%2fmhop%2farchive%2f2006%2f12%2f12%2fimplicit-and-explicit-interface-implementations.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/csharp/Implicit_and_Explicit_Interface_Implementations</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/csharp/Implicit_and_Explicit_Interface_Implementations</guid>
      <pubDate>Wed, 13 Dec 2006 18:01:02 GMT</pubDate>
    </item>
    <item>
      <title>Coding Horror: Office 2007 -- not so WIMPy</title>
      <description>In my opinion, the new Office 2007 user interface is one of the most innovative things to come out of Redmond in years. It's nothing less than the death of the main menu as a keystone GUI metaphor. This is a big deal. Historically, where Office goes, everyone else follows. It's already starting to trickle down: IE7 does not show its main menu by default, and neither does Vista. You have to press Alt to expose the menu. The main menu has been demoted to a sort of configuration panel for advanced users; for everyone else, there's the Ribbon and toolbar buttons. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.codinghorror.com%2fblog%2farchives%2f000724.html"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.codinghorror.com%2fblog%2farchives%2f000724.html" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/vista/Coding_Horror_Office_2007_not_so_WIMPy</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/vista/Coding_Horror_Office_2007_not_so_WIMPy</guid>
      <pubDate>Wed, 15 Nov 2006 18:01:01 GMT</pubDate>
    </item>
    <item>
      <title>New release of My Expos&amp;#233;, an Expos&amp;#233;-like application for Windows Vista</title>
      <description>Simon Ferquel has released a new version of My Expos&amp;#233;, the application that provides a similar feature to Mac's Expos&amp;#233;, giving you an overview of all open windows on your screen.
Display your windows using the keyboard, the mouse or even your voice!
This is still a pre-release (he calls it CTP) version, but it's pretty stable and bug-free. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblogs.labo-dotnet.com%2fsimon%2farchive%2f2006%2f11%2f08%2f11485.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblogs.labo-dotnet.com%2fsimon%2farchive%2f2006%2f11%2f08%2f11485.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/vista/New_release_of_My_Expos_233_an_Expos_233_like_application_for_Windows_Vista</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/vista/New_release_of_My_Expos_233_an_Expos_233_like_application_for_Windows_Vista</guid>
      <pubDate>Fri, 10 Nov 2006 10:31:02 GMT</pubDate>
    </item>
    <item>
      <title>Should I use an abstract class or an interface?</title>
      <description>There are both pros and cons to the functionality made available through the use of abstract classes and of interfaces even though there capabilities seem similar. This article discusses the trade-offs and recommends when to use each.  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fen.csharp-online.net%2fShould_I_use_an_abstract_class_or_an_interface%253F"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fen.csharp-online.net%2fShould_I_use_an_abstract_class_or_an_interface%253F" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/csharp/Should_I_use_an_abstract_class_or_an_interface</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/csharp/Should_I_use_an_abstract_class_or_an_interface</guid>
      <pubDate>Sat, 28 Oct 2006 00:31:02 GMT</pubDate>
    </item>
    <item>
      <title>Abstract Class vs Interface</title>
      <description>There are lost of discussion on the internet about the Interface vs Abstract class. Also, as base class whether we have to use interface, abstract class or normal class. This post points out a few considerations on which we can take decision about Interface vs Abstract class vs Class. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fgeekswithblogs.net%2fmahesh%2farchive%2f2006%2f07%2f05%2f84120.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fgeekswithblogs.net%2fmahesh%2farchive%2f2006%2f07%2f05%2f84120.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.dotnetkicks.com/architecture/Abstract_Class_vs_Interface</link>
      <guid isPermaLink="true">http://www.dotnetkicks.com/architecture/Abstract_Class_vs_Interface</guid>
      <pubDate>Wed, 05 Jul 2006 21:21:01 GMT</pubDate>
    </item>
  </channel>
</rss>
