<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Factory design pattern and usability</title><link>http://blogs.msdn.com/stevencl/archive/2005/06/21/431230.aspx</link><description>Luke Church watched the API usability presentation and contacted me with a question about a point I made regarding the factory design pattern and usability. One thing that I probably didn’t make clear in the presentation is that the difficulties with</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>re: Factory design pattern and usability</title><link>http://blogs.msdn.com/stevencl/archive/2005/06/21/431230.aspx#431259</link><pubDate>Tue, 21 Jun 2005 22:51:16 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:431259</guid><dc:creator>return42</dc:creator><description>I understanding in classifying programmers into one camp or another you have to make some gross generalizations, but I think you missed an entire classification of programmers, which imho, would encompass the majority.&lt;br&gt;&lt;br&gt;The coder that makes use of intellisense to determine which method to call ( and frankly, I think that’s most programmers… ) doesn’t mean that programmer has a narrow code focus.  In reality, it could be quite the opposite.&lt;br&gt;&lt;br&gt;This programmer could just as simply be figuring out an implementation specific detail.  Frankly, in a very well designed system, which method a developer uses to implement that system should be relatively unimportant.  The design tells them what functionality the component needs going in and going out.  So long as both contracts are fulfilled, there is no reason for the implementation itself to have been preconceived to this level of granularity.&lt;br&gt;&lt;br&gt;I think the reality of the situation is the majority of programmers are middle ground between what you have described.  Your comment could have been completely reversed for non-optimistic programmers to something like this.  (Yes, and I note the bias I’ve added… its for effect and doesn’t necessarily reflect my opinion on the matter )&lt;br&gt;&lt;br&gt;1.	These programmers tend to focus on engineering and abstracting interfaces, often way past any productive point.&lt;br&gt;2.	In many cases these programmers have a wide focus, but have difficulty actually implementing code… at least within an efficient time frame.&lt;br&gt;3.	These programmers have a very architecture oriented perspective.  However they get so caught up in engineering the product for reusability, to implement the newest methodology or optimizing performance that they can’t focus on the most important thing.  Actually creating the product!&lt;br&gt;&lt;br&gt;Sadly some programmers are as you described and some even more sadly are as I just described.  The reality is, the vast majority ( hopefully ) fall into a category rather in the middle.&lt;br&gt;&lt;br&gt;However, I think trying to summarize why a given type of programmer does or doesn’t have difficulty with factory design patterns has nothing to do with being in one classification or another.&lt;br&gt;&lt;br&gt;Cheers,&lt;br&gt;Mike</description></item><item><title>re: Factory design pattern and usability</title><link>http://blogs.msdn.com/stevencl/archive/2005/06/21/431230.aspx#431622</link><pubDate>Wed, 22 Jun 2005 19:09:20 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:431622</guid><dc:creator>stevencl</dc:creator><description>Thanks for your comments Mike.&lt;br&gt;&lt;br&gt;My comment about using Intellisense was simply to demonstrate the way that opportunistic programmers tend to think about the code that they need to write, not to suggest that using Intellisense is a definition of an opportunistic programmer or of a programmer with a narrow code focus.&lt;br&gt;&lt;br&gt;When opportunistic programmers have a narrow code focus and design time tools indicate that expected members aren't available on a type, the reaction of these programmers is different to other types of programmers.&lt;br&gt;&lt;br&gt;I firmly believe, based on the observations I've made in a number of different API usability studies, that the work styles embodied by the different types of developers go a long way to explaining why some design patterns work for some types of developers and don't work for other types of developers.&lt;br&gt;&lt;br&gt;Steven</description></item><item><title>Interesting Finds</title><link>http://blogs.msdn.com/stevencl/archive/2005/06/21/431230.aspx#432795</link><pubDate>Sun, 26 Jun 2005 17:14:30 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:432795</guid><dc:creator>Jason Haley</dc:creator><description /></item><item><title>Factories in APIs</title><link>http://blogs.msdn.com/stevencl/archive/2005/06/21/431230.aspx#433463</link><pubDate>Tue, 28 Jun 2005 21:56:15 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:433463</guid><dc:creator>Krzysztof Cwalina</dc:creator><description>Steven Clarke has an excellent post about using factories in APIs. The post explains why some developers...</description></item><item><title>Making The Factory Pattern More Discoverable</title><link>http://blogs.msdn.com/stevencl/archive/2005/06/21/431230.aspx#433507</link><pubDate>Tue, 28 Jun 2005 23:47:26 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:433507</guid><dc:creator>you've been HAACKED</dc:creator><description /></item><item><title>re: Factory design pattern and usability</title><link>http://blogs.msdn.com/stevencl/archive/2005/06/21/431230.aspx#433508</link><pubDate>Tue, 28 Jun 2005 23:48:33 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:433508</guid><dc:creator>Haacked</dc:creator><description>What if you provided some way for API designers to add hints that Intellisense would display to the developer that would help discoverability of the factory pattern.&lt;br&gt;&lt;br&gt;See &lt;a rel="nofollow" target="_new" href="http://haacked.com/archive/2005/06/28/7346.aspx"&gt;http://haacked.com/archive/2005/06/28/7346.aspx&lt;/a&gt; for an idea.</description></item><item><title> stevencl s WebLog Factory design pattern and usability | work from home</title><link>http://blogs.msdn.com/stevencl/archive/2005/06/21/431230.aspx#9760403</link><pubDate>Tue, 16 Jun 2009 14:14:46 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9760403</guid><dc:creator> stevencl s WebLog Factory design pattern and usability | work from home</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://workfromhomecareer.info/story.php?id=8980"&gt;http://workfromhomecareer.info/story.php?id=8980&lt;/a&gt;&lt;/p&gt;
</description></item></channel></rss>