<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feeds.feedsky.com/styles/temp01.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link href="http://feeds.feedsky.com/csdn.net/Zhang_yalin" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feeds.feedsky.com/csdn.net/Zhang_yalin" type="application/rss+xml"></fs:self_link><lastBuildDate>Wed, 10 Jun 2009 10:49:00 GMT</lastBuildDate><title>我为代码疯狂</title><description>全心修炼内家功力－－[简单的生活，简单的编程....做程序体验封装的乐趣]</description><link>http://blog.csdn.net/Zhang_yalin/</link><item><title>数据库设计经验谈(转)</title><link>http://blog.csdn.net/Zhang_yalin/archive/2009/06/10/4256759.aspx</link><wfw:comment>http://blog.csdn.net/Zhang_yalin/comments/4256759.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/Zhang_yalin/comments/commentRss/4256759.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=4256759</trackback:ping><description>数据库设计经验谈(转)一个成功的管理系统，是由：[50% 的业务 + 50% 的软件] 所组成，而 50% 的成功软件又有 [25% 的数据库 + 25% 的程序] 所组成，数据库设计的好坏是一个关键。如果把企业的数据比做生命所必需的血液，那么数据库的设计就是应用中最重要的一部分。有关数据库设计的材料汗牛充栋，大学学位课程里也有专门的讲述。不过，就如我们反复强调的那样，再好的老师也比不过经验的教诲。所以我归纳历年来所走的弯路及体会，并在网上找了些对数据库设计颇有造诣的专业人士给大家传授一些设计数据库的技巧和经验。&lt;img src =&quot;http://blog.csdn.net/Zhang_yalin/aggbug/4256759.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/236167890/Zhang_yalin/csdn.net/s.gif?r=http://blog.csdn.net/Zhang_yalin/archive/2009/06/10/4256759.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/Zhang_yalin/236167890/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/Zhang_yalin/236167890/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Wed, 10 Jun 2009 18:49:00 +0800</pubDate><author>张亚林</author><comments>http://blog.csdn.net/Zhang_yalin/archive/2009/06/10/4256759.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/Zhang_yalin/archive/2009/06/10/4256759.aspx</guid><dc:creator>张亚林</dc:creator><fs:srclink>http://blog.csdn.net/Zhang_yalin/archive/2009/06/10/4256759.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/Zhang_yalin/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/Zhang_yalin/~1186928/236167890/1186908</fs:itemid></item><item><title>代码复用的规则</title><link>http://blog.csdn.net/Zhang_yalin/archive/2009/05/26/4216093.aspx</link><wfw:comment>http://blog.csdn.net/Zhang_yalin/comments/4216093.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/Zhang_yalin/comments/commentRss/4216093.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=4216093</trackback:ping><description>&lt;br /&gt;对接口编程&lt;br /&gt;&quot;对接口编程&quot;是面向对象设计（OOD）的第一个基本原则。它的含义是：使用接口和同类型的组件通讯，即，对于所有完成相同功能的组件，应该抽象出一个接口，它们都实现该接口。具体到JAVA中，可以是接口（interface），或者是抽象类（abstract class），所有完成相同功能的组件都实现该接口，或者从该抽象类继承。我们的客户代码只应该和该接口通讯，这样，当我们需要用其它组件完成任务时，只需要替换该接口的实现，而我们代码的其它部分不需要改变！&lt;br /&gt;当现有的组件不能满足要求时，我们可以创建新的组件，实现该接口，或者，直接对现有的组件进行扩展，由子类去完成扩展的功能。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;优先使用对象组合，而不是类继承&lt;br /&gt;&quot;优先使用对象组合，而不是类继承&quot;是面向对象设计的第二个原则。并不是说继承不重要，而是因为每个学习OOP的人都知道OO的基本特性之一就是继承，以至于继承已经被滥用了，而对象组合技术往往被忽视了。下面分析继承和组合的优缺点：&lt;br /&gt;&lt;img src =&quot;http://blog.csdn.net/Zhang_yalin/aggbug/4216093.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/236167891/Zhang_yalin/csdn.net/s.gif?r=http://blog.csdn.net/Zhang_yalin/archive/2009/05/26/4216093.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/Zhang_yalin/236167891/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/Zhang_yalin/236167891/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Tue, 26 May 2009 16:51:00 +0800</pubDate><author>张亚林</author><comments>http://blog.csdn.net/Zhang_yalin/archive/2009/05/26/4216093.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/Zhang_yalin/archive/2009/05/26/4216093.aspx</guid><dc:creator>张亚林</dc:creator><fs:srclink>http://blog.csdn.net/Zhang_yalin/archive/2009/05/26/4216093.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/Zhang_yalin/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/Zhang_yalin/~1186928/236167891/1186908</fs:itemid></item><item><title>asp.net2.0 WebConfig文件加密码[可能忽略的一个问题]</title><link>http://blog.csdn.net/Zhang_yalin/archive/2009/03/18/4001890.aspx</link><wfw:comment>http://blog.csdn.net/Zhang_yalin/comments/4001890.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/Zhang_yalin/comments/commentRss/4001890.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=4001890</trackback:ping><description>可以使用受保护配置来加密 Web 应用程序配置文件（如 Web.config 文件）中的敏感信息（包括用户名和密码、数据库连接字符串和加密密钥）。对配置信息进行加密后，即使攻击者获取了对配置文件的访问，也可以使攻击者难以获取对敏感信息的访问，从而改进应用程序的安全性。    针对asp.net 2.0的应用程序的数据库链接字符串进行加密：例如，未加密的配置文件中可能包含一个指定用于连接到数据库的连接字符串的节，如下面的示例所示：    ASP.NET 2.0 中有一个新的安全特性.可以对 Web.&lt;img src =&quot;http://blog.csdn.net/Zhang_yalin/aggbug/4001890.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/Zhang_yalin/236167892/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/Zhang_yalin/236167892/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Thu, 19 Mar 2009 00:49:00 +0800</pubDate><author>张亚林</author><comments>http://blog.csdn.net/Zhang_yalin/archive/2009/03/18/4001890.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/Zhang_yalin/archive/2009/03/18/4001890.aspx</guid><dc:creator>张亚林</dc:creator><fs:srclink>http://blog.csdn.net/Zhang_yalin/archive/2009/03/18/4001890.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/Zhang_yalin/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/Zhang_yalin/~1186928/236167892/1186908</fs:itemid></item><item><title>.net大字段操作</title><link>http://blog.csdn.net/Zhang_yalin/archive/2009/03/07/3966664.aspx</link><wfw:comment>http://blog.csdn.net/Zhang_yalin/comments/3966664.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/Zhang_yalin/comments/commentRss/3966664.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=3966664</trackback:ping><description>超长文本存储   SqlCommand myCommand;   myCommand.CommandText = &quot;INSERT table (Field1,Field2...)VALUES(@Field1,@Field2)&quot;;    SqlParameter myParameter = new SqlParameter(&quot;@Field1&quot;, SqlDbType.Text);   myCommand.Parameters.Add(myParamArray);   SqlParameter myParameter = new SqlParameter(&quot;@Field2&quot;, SqlDbType.Text);   myCommand.Parameters.Add(myParamArray);   myCommand.ExecuteNonQuery;图片存储void Button_Submit(System.Object sender, Syste&lt;img src =&quot;http://blog.csdn.net/Zhang_yalin/aggbug/3966664.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/Zhang_yalin/236167893/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/Zhang_yalin/236167893/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Sun, 08 Mar 2009 02:25:00 +0800</pubDate><author>张亚林</author><comments>http://blog.csdn.net/Zhang_yalin/archive/2009/03/07/3966664.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/Zhang_yalin/archive/2009/03/07/3966664.aspx</guid><dc:creator>张亚林</dc:creator><fs:srclink>http://blog.csdn.net/Zhang_yalin/archive/2009/03/07/3966664.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/Zhang_yalin/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/Zhang_yalin/~1186928/236167893/1186908</fs:itemid></item><item><title>使用 HttpWebRequest 向网站提交数据</title><link>http://blog.csdn.net/Zhang_yalin/archive/2008/12/25/3601373.aspx</link><wfw:comment>http://blog.csdn.net/Zhang_yalin/comments/3601373.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/Zhang_yalin/comments/commentRss/3601373.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=3601373</trackback:ping><description>HttpWebRequest 是 .net 基类库中的一个类，在命名空间 System.Net 下面，用来使用户通过 HTTP 协议和服务器交互。 HttpWebRequest 对 HTTP 协议进行了完整的封装，对 HTTP 协议中的 Header, Content, Cookie 都做了属性和方法的支持，很容易就能编写出一个模拟浏览器自动登录的程序。 程序使用 HTTP 协议和服务器交互主要是进行数据的提交，通常数据的提交是通过 GET 和 POST 两种方式来完成，下面对这两种方式进行一下说明： 1. GET 方式。 GET 方式通过在网络地址附加参数来完成数据的提交，比如在地址 http://www.google.com/webhp?hl=zh-CN 中，前面部分 http://www.google.com/webhp 表示数据提交的网址，后面部分 hl=zh-CN 表示附加的参数，其中 hl 表示一个键(key)， zh-CN 表示这个键对应的值(value)。程序代码如下： &lt;img src =&quot;http://blog.csdn.net/Zhang_yalin/aggbug/3601373.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/Zhang_yalin/236167894/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/Zhang_yalin/236167894/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Thu, 25 Dec 2008 18:36:00 +0800</pubDate><author>张亚林</author><comments>http://blog.csdn.net/Zhang_yalin/archive/2008/12/25/3601373.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/Zhang_yalin/archive/2008/12/25/3601373.aspx</guid><dc:creator>张亚林</dc:creator><fs:srclink>http://blog.csdn.net/Zhang_yalin/archive/2008/12/25/3601373.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/Zhang_yalin/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/Zhang_yalin/~1186928/236167894/1186908</fs:itemid></item><item><title>再谈谈接口和抽象类</title><link>http://blog.csdn.net/Zhang_yalin/archive/2008/12/23/3587638.aspx</link><wfw:comment>http://blog.csdn.net/Zhang_yalin/comments/3587638.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/Zhang_yalin/comments/commentRss/3587638.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=3587638</trackback:ping><description>到现在接口和抽象类还是有很多人对这两种情况不能很好的应用
前些天在网上看到有位仁兄说了：接口是给外人用的，而抽象类是给自家子孙用的，哈哈，这句话我个人认为很是经典呀。
其实怎么说了？让我们去分解一下上面那句话。
“&quot;接口是给外人用的”
接口和抽象类在大致的功能上没什么区别。但是在设计上和就从它表面的字面语义上去理解，接口就是对外的嘛，就是对外部客户代码提供的一组规则，它忌讳修改，但可以去扩展它。说个很简单的例子，我们电脑主板上的ＩＤＥ硬盘接口，它是Ｔ型的它有３９个不同颜色的针，它可以接不同品牌的硬盘呀，有希捷，有ＩＢＭ，有三星等。
接口外称：ＩＤＥ硬盘接口
规则：Ｔ型的它有３９个不同颜色的针
客户端：希捷硬盘，ＩＢＭ硬盘，三星硬盘。。。。。。还会有更多


&lt;img src =&quot;http://blog.csdn.net/Zhang_yalin/aggbug/3587638.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/Zhang_yalin/236167895/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/Zhang_yalin/236167895/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Tue, 23 Dec 2008 17:29:00 +0800</pubDate><author>张亚林</author><comments>http://blog.csdn.net/Zhang_yalin/archive/2008/12/23/3587638.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/Zhang_yalin/archive/2008/12/23/3587638.aspx</guid><dc:creator>张亚林</dc:creator><fs:srclink>http://blog.csdn.net/Zhang_yalin/archive/2008/12/23/3587638.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/Zhang_yalin/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/Zhang_yalin/~1186928/236167895/1186908</fs:itemid></item><item><title>适应于Oracle和Sql Server的实体生成工具〔自已写的，用于学习和交流，很好用)</title><link>http://blog.csdn.net/Zhang_yalin/archive/2008/12/11/3498885.aspx</link><wfw:comment>http://blog.csdn.net/Zhang_yalin/comments/3498885.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/Zhang_yalin/comments/commentRss/3498885.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=3498885</trackback:ping><description>适应于Oracle和Sql Server的实体生成工具〔本人自已写的,肯定好用)上次在网上找了很久，也找到了很多，但是都不是很好用，不是很方便，于是自已写了一个，感觉不错，给大家分享[下面有下载地址有原码][看的懂原码的稍做修改会更适合自已]&lt;img src =&quot;http://blog.csdn.net/Zhang_yalin/aggbug/3498885.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/Zhang_yalin/236167896/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/Zhang_yalin/236167896/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Fri, 12 Dec 2008 00:07:00 +0800</pubDate><author>张亚林</author><comments>http://blog.csdn.net/Zhang_yalin/archive/2008/12/11/3498885.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/Zhang_yalin/archive/2008/12/11/3498885.aspx</guid><dc:creator>张亚林</dc:creator><fs:srclink>http://blog.csdn.net/Zhang_yalin/archive/2008/12/11/3498885.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/Zhang_yalin/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/Zhang_yalin/~1186928/236167896/1186908</fs:itemid></item><item><title>开放封闭原则--OCP</title><link>http://blog.csdn.net/Zhang_yalin/archive/2008/12/10/3489801.aspx</link><wfw:comment>http://blog.csdn.net/Zhang_yalin/comments/3489801.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/Zhang_yalin/comments/commentRss/3489801.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=3489801</trackback:ping><description>软件实体应当对扩展开放，对修改关闭，即软件实体应当在不修改（在.Net当中可能通过代理模式来达到这个目的）的前提下扩展。&lt;img src =&quot;http://blog.csdn.net/Zhang_yalin/aggbug/3489801.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/Zhang_yalin/236167897/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/Zhang_yalin/236167897/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Wed, 10 Dec 2008 20:48:00 +0800</pubDate><author>张亚林</author><comments>http://blog.csdn.net/Zhang_yalin/archive/2008/12/10/3489801.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/Zhang_yalin/archive/2008/12/10/3489801.aspx</guid><dc:creator>张亚林</dc:creator><fs:srclink>http://blog.csdn.net/Zhang_yalin/archive/2008/12/10/3489801.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/Zhang_yalin/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/Zhang_yalin/~1186928/236167897/1186908</fs:itemid></item><item><title>单一职责原则--SRP</title><link>http://blog.csdn.net/Zhang_yalin/archive/2008/12/10/3489747.aspx</link><wfw:comment>http://blog.csdn.net/Zhang_yalin/comments/3489747.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/Zhang_yalin/comments/commentRss/3489747.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=3489747</trackback:ping><description>就一个类而言，应该只专注于做一件事和仅有一个引起它变化的原因。所谓职责，我们可以理解他为功能，就是设计的这个类功能应该只有一个，而不是两个或更多。也可以理解为引用变化的原因，当你发现有两个变化会要求我们修改这个类，那么你就要考虑撤分这个类了。因为职责是变化的一个轴线，当需求变化时，该变化会反映类的职责的变化。“就像一个人身兼数职，而这些事情相互关联不大，，甚至有冲突，那他就无法很好的解决这些职责，应该分到不同的人身上去做才对。”&lt;img src =&quot;http://blog.csdn.net/Zhang_yalin/aggbug/3489747.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/Zhang_yalin/236167901/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/Zhang_yalin/236167901/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Wed, 10 Dec 2008 20:39:00 +0800</pubDate><author>张亚林</author><comments>http://blog.csdn.net/Zhang_yalin/archive/2008/12/10/3489747.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/Zhang_yalin/archive/2008/12/10/3489747.aspx</guid><dc:creator>张亚林</dc:creator><fs:srclink>http://blog.csdn.net/Zhang_yalin/archive/2008/12/10/3489747.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/Zhang_yalin/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/Zhang_yalin/~1186928/236167901/1186908</fs:itemid></item><item><title>接口隔离原则--ISP</title><link>http://blog.csdn.net/Zhang_yalin/archive/2008/12/10/3489719.aspx</link><wfw:comment>http://blog.csdn.net/Zhang_yalin/comments/3489719.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/Zhang_yalin/comments/commentRss/3489719.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=3489719</trackback:ping><description>使用多个专门的接口比使用单一的总接口要好。一个类对另外一个类的依赖性应当是建立在最小的接口上的。一个接口代表一个角色，不应当将不同的角色都交给一个接口。没有关系的接口合并在一起，形成一个臃肿的大接口，这是对角色和接口的污染。“不应该强迫客户依赖于它们不用的方法。接口属于客户，不属于它所在的类层次结构。”这个说得很明白了，再通俗点说，不要强迫客户使用它们不用的方法，如果强迫用户使用它们不使用的方法，那么这些客户就会面临由于这些不使用的方法的改变所带来的改变。实现方法：1、使用委托分离接口2、使用多重继承分离接口&lt;img src =&quot;http://blog.csdn.net/Zhang_yalin/aggbug/3489719.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/Zhang_yalin/236167902/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/Zhang_yalin/236167902/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Wed, 10 Dec 2008 20:36:00 +0800</pubDate><author>张亚林</author><comments>http://blog.csdn.net/Zhang_yalin/archive/2008/12/10/3489719.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/Zhang_yalin/archive/2008/12/10/3489719.aspx</guid><dc:creator>张亚林</dc:creator><fs:srclink>http://blog.csdn.net/Zhang_yalin/archive/2008/12/10/3489719.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/Zhang_yalin/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/Zhang_yalin/~1186928/236167902/1186908</fs:itemid></item></channel></rss>