﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-Retrieve the power...</title><link>http://www.cnblogs.com/Dabay/</link><description /><language>zh-cn</language><lastBuildDate>Mon, 13 Oct 2008 14:40:38 GMT</lastBuildDate><pubDate>Mon, 13 Oct 2008 14:40:38 GMT</pubDate><ttl>60</ttl><item><title>面向对象设计技巧[Object Oriented Design Tips] - 2</title><link>http://www.cnblogs.com/Dabay/archive/2007/06/14/784039.html</link><dc:creator>Dabay</dc:creator><author>Dabay</author><pubDate>Thu, 14 Jun 2007 15:47:00 GMT</pubDate><guid>http://www.cnblogs.com/Dabay/archive/2007/06/14/784039.html</guid><wfw:comment>http://www.cnblogs.com/Dabay/comments/784039.html</wfw:comment><comments>http://www.cnblogs.com/Dabay/archive/2007/06/14/784039.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/Dabay/comments/commentRss/784039.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Dabay/services/trackbacks/784039.html</trackback:ping><description><![CDATA[<h3><a style="COLOR: #ff6600" name="Pick nouns as classes">Pick nouns or noun phrases as classes</a></h3>
<p>Identifying objects is easy, they should always be nouns. As we have seen in the Circuit Controller example, we picked up nouns from the requirements as classes in our design. Even when you invent classes, keep in mind that they should be nouns. Abstract concepts don't qualify as object names.&nbsp;</p>
<p>Naming the objects is extremely important in object oriented design. Chances are that if you name your object correctly, the designers and maintainers will assign it functionality that fits its name. Also note that, if you have trouble naming an object, you probably have the wrong object. At this point go back and look at the problem again and see if you can pick an alternative object.<br><br><strong>选择名词或者名词短语作为类的名称</strong><br><br>识别对象是简单的，因为它们一般都可以用名词来描述。就像我们在电路控制器这个例子中看到的那样，我们在设计的时候从需求中选择名词作为类名。甚至在你创造自己的类的时候，也要时刻注意类名应该是名词。抽象的概念不要作为对象的名称。<br><br>在面向对象的设计中为对象命名显得特别重要。在变化出现的时候，如果你恰当的命名了你的对象，设计和维护人员会根据它的名称指派正确的功能。同样需要注意的是，如果你发现你在命名一个对象的时候出现了问题，你可能创造了一个错误的对象。在这个时候，应该再一次回到问题本身，寻找是否存在一个可以替代的对象。<br>----------------------------------------------<br></p>
<h3><a style="COLOR: #ff6600" name="Method names should contain verbs">Method names should contain verbs</a></h3>
<p>In any language, actions performed by nouns are specified using verbs. Why should object oriented programming be any different? Thus make sure all the operation methods should contain verbs.</p>
<p>Thus the <font color=#000080>Circuit</font> class we discussed earlier would have methods like:</p>
<ul>
    <li>Activate
    <li>Deactivate
    <li>Block
    <li>Unblock
    <li>ChangeStatus </li>
</ul>
<p>Notice that the methods do not include Circuit in the name (ActivateCircuit, BlockCircuit etc.) as being methods of Circuit its clear that they refer to operations on <font color=#000080>Circuit</font>.<br><br><strong>方法名称应该包含动词</strong><br><br>在任何一种语言中，用名词表现行为即为动词。在OOP中也不例外，应该确保所有方法包含动词。因此，在我们之前起到的那个<font color=#000080>Circuit</font> 类中的方法应该像下面这样：<br></p>
<li>Activate
<li>Deactivate
<li>Block
<li>Unblock
<li>ChangeStatus <br><br>要注意这些方法名都没有包含Circuit 在其中（如ActivateCircuit, BlockCircuit 等），因为在Circuit 中的方法这个事实本身就说明了这些方法是对<font color=#000080>Circuit<span style="COLOR: #000000">的操作。</span></font></li>
<img src ="http://www.cnblogs.com/Dabay/aggbug/784039.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42969/" target="_blank">[新闻]MySpace推自助广告平台MyAds</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>面向对象设计的技巧[Object Oriented Design Tips]-1</title><link>http://www.cnblogs.com/Dabay/archive/2007/06/10/778594.html</link><dc:creator>Dabay</dc:creator><author>Dabay</author><pubDate>Sun, 10 Jun 2007 15:14:00 GMT</pubDate><guid>http://www.cnblogs.com/Dabay/archive/2007/06/10/778594.html</guid><wfw:comment>http://www.cnblogs.com/Dabay/comments/778594.html</wfw:comment><comments>http://www.cnblogs.com/Dabay/archive/2007/06/10/778594.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/Dabay/comments/commentRss/778594.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Dabay/services/trackbacks/778594.html</trackback:ping><description><![CDATA[<h3><a style="COLOR: #ff6600" name="Stay close to real world">Stay close to problem domain</a></h3>
<p>Design is a process of modeling the problem domain into programming constructs. Object oriented design simplifies the design process by maintaining a one-to-one mapping between problem domain objects and software objects. To succeed in object oriented design, keep your design as close as possible to problem domain objects. The interactions between your objects should mirror interactions between corresponding problem domain objects.</p>
<p>Problem domain objects is basically an object that can be found in the problem itself. For example, when developing a text editor real-world objects would be, Paragraph, Sentence, Word, ScrollBar, TextSelection etc. While developing a call processing module, the objects might be Call, Ringer, ToneDetector, Subscriber etc.&nbsp;<br><br><strong>靠近问题领域<br></strong><br>设计是一个把问题领域建模到程序结构的过程。面向对象的设计通过维持一个一对一的问题领域和软件对象之间的映射，让设计过程简单化。要成功的进行面向对象的设计，应当让你的设计尽可能的靠近问题领域对象。你设计的对象之间的相互关系应该与问题领域对象之间的相互关系一致。<br><br>问题领域对象本质上就是可以在问题本身中找到的对象。例如，当你开发一个文本编辑器的时候，真实世界的对象可能是段落、句子、词、滚动条、文本选择器等；让你开发一个呼叫过程模块时，对象可能是呼叫者、闹铃、音频探测器、被呼叫者等。<br><br>----------------------------------------------------------<br></p>
<h3><a style="COLOR: #ff6600" name="Object discovery vs. object invention">Object discovery vs. object invention</a></h3>
<p>The first step in object oriented analysis is to discover the objects that can be directly identified from the problem itself. In many cases objects can be identified&nbsp; from the requirements. Objects discovered from the problem statement are extremely important. These objects will be the core objects in the design.</p>
<p>The next stage in object design is to "invent" objects. These objects are needed to "glue" together objects that have been identified during object discovery. Invented objects generally do not correspond to anything tangible in the problem domain. They are inventions of programmers to simplify design.</p>
<p>Consider the following statement from the requirements:</p>
<p><font color=#000080><em>The <strong>circuit controller</strong> shall support <strong>digital and analog </strong><strong>circuits</strong>. The circuit controller shall contain 32 <strong>DSPs</strong>. When the circuit controller receives a request to setup a circuit, it shall allocate a DSP to the circuit.</em></font></p>
<p>We discover the following objects from the requirement:</p>
<ul>
    <li><font color=#000080>CircuitController</font>
    <li><font color=#000080>DigitalCircuit</font>
    <li><font color=#000080>AnalogCircuit</font>
    <li><font color=#000080>DSP</font> </li>
</ul>
<p>We invent the following objects based on our knowledge of the <a href="http://www.eventhelix.com/RealtimeMantra/ManagerDesignPattern.htm">manager design pattern</a>:</p>
<ul>
    <li><font color=#000080>DSPManager</font>: Manages the 32 DSPs on the circuit controller
    <li><font color=#000080>CircuitManager</font>: Manages the digital and analog circuits </li>
</ul>
<p>We invent a <font color=#000080>Circuit</font> base class for <font color=#000080>DigitalCircuit</font> and <font color=#000080>AnalogCircuit</font> by filtering properties that are common to <font color=#000080>DigitalCircuit</font> and <font color=#000080>AnalogCircuit</font> objects.</p>
<p>The relationship between the classes also follows from the requirement. <font color=#000080>CircuitController</font> class contains <font color=#000080>DSPManager</font> and <font color=#000080>CircuitManager</font> classes. The <font color=#000080>CircuitManager</font> contains an array of <font color=#000080>Circuit</font> class pointers. The <font color=#000080>DSPManager</font> contains an array of <font color=#000080>DSP</font> objects.<br><br><strong>发现对象 vs 创造对象</strong></p>
<p align=left><span>面向对象设计中的第一步就是在问题本身中发现对象。在大多数情况下，对象可以直接在需求中提取出来。在问题的描述中发现对象是非常重要的，往往这些对象就是设计中的核心对象。</span></p>
<p align=left><span>对象设计的下一步就是&#8220;创造&#8221;对象。这些创造的对象需要和提取出来的对象&#8220;粘和&#8221;起来。被创造出来的对象和问题领域本身并没有直接的关联，这些对象是程序员创造出来，以便简化设计用的。</span></p>
<p align=left><span>考虑下面在需求中的一句话：</span></p>
<p align=left><em style="COLOR: #0000ff"><span><strong>电路控制器</strong>应该支持<strong>数字信号和模拟信号</strong>。电路控制器应该处理</span><span>32</span><span>位的</span><span><strong>DSP</strong></span><span>。当电话控制器接收一个建立电路的请求之后，它应该为这个电路分配一个</span><span>DSP</span><span>。</span></em></p>
<p align=left><span>我们在这段需求中可以发现下面几个对象：</span></p>
<ul type=disc>
    <li><span style="COLOR: #0000ff">CircuitController</span> </li>
    <li><span style="COLOR: #0000ff">DigitalCircuit</span> </li>
    <li><span style="COLOR: #0000ff">AnalogCircuit</span> </li>
    <li><span style="COLOR: #0000ff">DSP</span> </li>
</ul>
<p align=left><span>然后我们根据管理设计模式的知识创造下面的对象：</span></p>
<ul type=disc>
    <li><span><font style="COLOR: #0000ff" color=#000080>DSPManager</font></span><span>：在电路控制器中管理</span><span>32</span><span>位的</span><span>DSP</span><span>。</span></li>
    <li><span><font style="COLOR: #0000ff" color=#000080>CircuitManager</font>：管理数字电路和模拟电路。</span></li>
</ul>
<p align=left><span>我们为</span><span style="COLOR: #0000ff">DigitalCircuit</span><span>和</span><span style="COLOR: #0000ff">AnalogCircuit<span>再</span></span><span>创造一个基类</span><span style="COLOR: #0000ff">Circuit</span><span>，这个基类拥有</span><span style="COLOR: #0000ff">DigitalCircuit</span><span>和</span><span style="COLOR: #0000ff">AnalogCircuit</span><span>中共有的属性。</span></p>
<p align=left><span>这些类的联系也符合我们的需求：</span></p>
<p align=left><span style="COLOR: #0000ff">CircuitController</span><span>类</span><span>拥有</span><span style="COLOR: #0000ff">DSPManager</span><span>类</span><span>和</span><span style="COLOR: #0000ff">CircuitManager</span><span>类。</span><span style="COLOR: #0000ff">CircuitManager</span><span>拥有一组</span><span style="COLOR: #0000ff">Circuit</span><span>类的引用；同时</span><span style="COLOR: #0000ff">DSPManager</span><span>也拥有一组</span><span style="COLOR: #0000ff">DSP</span><span>对象。</span></p>
<img src ="http://www.cnblogs.com/Dabay/aggbug/778594.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42960/" target="_blank">[新闻]Facebook创始人:信息共享或存摩尔定律</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>Person owns Dog...</title><link>http://www.cnblogs.com/Dabay/archive/2006/10/17/PersonOwnsDog.html</link><dc:creator>Dabay</dc:creator><author>Dabay</author><pubDate>Mon, 16 Oct 2006 16:25:00 GMT</pubDate><guid>http://www.cnblogs.com/Dabay/archive/2006/10/17/PersonOwnsDog.html</guid><wfw:comment>http://www.cnblogs.com/Dabay/comments/530901.html</wfw:comment><comments>http://www.cnblogs.com/Dabay/archive/2006/10/17/PersonOwnsDog.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/Dabay/comments/commentRss/530901.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Dabay/services/trackbacks/530901.html</trackback:ping><description><![CDATA[<h3><a href="http://www.aspectprogrammer.org/blogs/adrian/2004/05/person_owns_dog.html">http://www.aspectprogrammer.org/blogs/adrian/2004/05/person_owns_dog.html</a></h3>
<p><span style="FONT-SIZE: 10pt">实际上，我一直在找寻这样的一个例子来说明类的应该就是一个独立的个体，不应该其他无关系的类有联系，今天看到这篇文章，一句话：正和我意！</span></p>
<h3><span style="COLOR: #ff9900">Person owns Dog...</span></h3>
<p><span style="COLOR: #ff9900">May 28, 2004</span></p>
<p>There's a famous OO problem involving people and dogs that I first learnt about in Meilir Page-Jones' excellent book "<a href="http://www.amazon.com/exec/obidos/ASIN/020169946X/ref%3Dsr%5Faps%5Fbooks%5F1%5F1/102-6083993-6510564">Fundamentals of Object-Oriented Design in UML</a>." It involves a class <strong>Person</strong>, with an attribute <strong>numOfDogsOwned</strong> and a simple accessor method <strong>getNumDogsOwned()</strong>. The argument goes that this may not neccessarily be good design, since <strong>Person</strong> and <strong>Dog</strong> are distinct concepts, and dog ownership is not an essential property of being a person.</p>
<p>Page-Jones calls this <em>mixed-role cohesion</em>, and he explains the problem better than I can: "What if you wanted to reuse <strong>Person</strong> in an application that had no dogs? You could do so, but you'd have extra, useless baggage from the class, and you might get some pesky warnings about missing dogs from your compiler (or linker). And where should we stop with this design philosophy? Why not include these attributes in <strong>Person</strong>: <strong>numOfCarsOwned, numOfBoatsOwned, numOfCatsOwned, numOfFrogsOwned</strong>,... ?"</p>
<p>It's an interesting problem, because there's no perfect solution in OO - Page-Jones discusses the pros and cons of four possible solutions including just adding the members directly to <strong>Person</strong>, using a <strong>PersonDogOwnership</strong> relationship class, using an abstract mix-in class, and using aggregation. Mixed-role cohesion sounds like the kind of problem that inter-type declarations in AspectJ should be able to help us address, so here's the world's first (AFAIK) aspect-oriented solution to the person-owns-dog problem:</p>
<pre><blockquote>
/**
* not a dog in sight...
*/
public class Person {
private String lastName;
private Address address;
...
public String getLastName() { return lastName; }
...
}
</blockquote>
</pre>
<p>Some of you will have heard me use my adverb/adjective analogy for aspects before, and that's exactly what we've got here. We want to create a <em>dog-owning</em> person, which we could do by creating a <strong>DogOwningPerson</strong> class (a bit like creating a new noun), but <em>dog-owning</em> isn't limited to people, maybe an <strong>Organisation</strong> can own dogs too? What we've got is a concept (a compound adjective, dog-owning) that stands in its own right independent of any one class, and that could be applied to many different classes. I'm thinking interface, and I'm thinking aspect...</p>
<pre><blockquote>
/**
* not a person in sight...
*/
public aspect DogOwnership {
public interface IDogOwner {};
private int IDogOwner.numDogsOwned;
public int IDogOwner.getNumDogsOwned() { return numDogsOwned; }
}
</blockquote>
</pre>
<p>This aspect represents in a single module the concept of dog ownership. It defines an <strong>IDogOwner</strong> interface (it doesn't have to be an inner-interface, but making it so helps to keep the whole thing together), and uses inter-type declarations to define a <strong>numDogsOwned</strong> attribute and a <strong>getNumDogsOwned()</strong> method on behalf of all dog owners.</p>
<p>We still haven't quite got to person-owns-dog - I wanted to keep the concept of dog ownership independent of any one kind of dog owner. If we have an application where we need person-owns-dog, we can write the following:
<pre><blockquote>
public aspect PersonOwnsDog {
declare parents : Person implements DogOwnership.IDogOwner;
}
</blockquote>
</pre>
<p>I like this solution because <strong>Person</strong> and <strong>DogOwnership</strong> are independently reusable, and represent cohesive abstractions in their own right. The <strong>PersonOwnsDog</strong> aspect that binds the two together is also very clear and simple.</p>
<p>With these aspects in place, you could call the <strong>getNumDogsOwned</strong> method on a <strong>Person</strong> as follows:
<pre><blockquote>
Person person = new Person();
person.getNumDogsOwned();
</blockquote>
</pre>
<p>&nbsp;</p>
<p>this will compile happily and execute without any problems. If ever you build the application without the <strong>PersonOwnsDog</strong> aspect though, you'll get a compile-time error about missing dogs. If you don't want that to happen, you could code the client this way (and I probably would in this particular circumstance):
<pre><blockquote>
...
if (person instanceof DogOwnership.IDogOwner) {
((DogOwnership.IDogOwner)person).getNumDogsOwned();
}
...
</blockquote>
</pre>
<p>&nbsp;</p>
<p>but it's just a matter of personal taste, the compiler doesn't require it.</p>
<a name=a000037more></a><a id=more></a>
<p class=posted>Posted by adrian at May 28, 2004 12:21 PM <a href="http://www.aspectprogrammer.org/blogs/adrian/2004/05/person_owns_dog.html">[permalink]</a> </p>
<img src ="http://www.cnblogs.com/Dabay/aggbug/530901.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42959/" target="_blank">[新闻]微软承认Vista用户账户控制功能有问题</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>Ajax四原则</title><link>http://www.cnblogs.com/Dabay/archive/2006/07/14/450724.html</link><dc:creator>Dabay</dc:creator><author>Dabay</author><pubDate>Fri, 14 Jul 2006 06:05:00 GMT</pubDate><guid>http://www.cnblogs.com/Dabay/archive/2006/07/14/450724.html</guid><wfw:comment>http://www.cnblogs.com/Dabay/comments/450724.html</wfw:comment><comments>http://www.cnblogs.com/Dabay/archive/2006/07/14/450724.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/Dabay/comments/commentRss/450724.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Dabay/services/trackbacks/450724.html</trackback:ping><description><![CDATA[<p>&lt;Ajax in action&gt; said:</p>
<p>1.&nbsp;&nbsp;&nbsp; <span style="COLOR: #ff6600">The browser hosts an application, not content.</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 浏览器是一个应用程序，而不是一个显示内容的容器。</p>
<p>2.&nbsp;&nbsp;&nbsp; <span style="COLOR: #ff6600">The server delivers data, not content.<br></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 服务器端发送数据，而不是全部内容。</p>
<p>3.&nbsp;&nbsp;&nbsp; <span style="COLOR: #ff6600">User interaction with the application can be fluid and continuous.<br></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 和用户的交互应该是连贯而持续的。</p>
<p>4.&nbsp;&nbsp;&nbsp; <span style="COLOR: #ff6600">This is real coding and requires discipline.<br></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这是真正的编程，当然需要严谨的原则。</p>
<img src ="http://www.cnblogs.com/Dabay/aggbug/450724.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42958/" target="_blank">[新闻]资本寒冬侵袭中国视频网站 营销春天或不远</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>DataGrid和DataList中CommandButton的问题</title><link>http://www.cnblogs.com/Dabay/archive/2006/07/10/447470.html</link><dc:creator>Dabay</dc:creator><author>Dabay</author><pubDate>Mon, 10 Jul 2006 11:48:00 GMT</pubDate><guid>http://www.cnblogs.com/Dabay/archive/2006/07/10/447470.html</guid><wfw:comment>http://www.cnblogs.com/Dabay/comments/447470.html</wfw:comment><comments>http://www.cnblogs.com/Dabay/archive/2006/07/10/447470.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/Dabay/comments/commentRss/447470.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Dabay/services/trackbacks/447470.html</trackback:ping><description><![CDATA[<h1 class=block_title><a id=viewpost1_TitleUrl href="/articles/447466.html"><font color=#ff6600></font></a>&nbsp;</h1>
<div class=post>
<div class=postcontent>今天遇到的这个问题很是郁闷！难道是FrameWork 1.1对于1.0的改进？<br><br>在DataGrid或者DataList中，有ItemCommand，比如Edit、Select等。<br>但是只有用&lt;asp:LinkButton&gt;的时候才能正常运行，用&lt;asp:Button&gt;却不可以！<br>如&lt;asp:LinkButton CommandName="Edit" Text="Edit" Runat="server" /&gt;才能正常使用。<br><br></div>
</div>
<img src ="http://www.cnblogs.com/Dabay/aggbug/447470.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42957/" target="_blank">[新闻]金融风暴波及全球创业板 中国概念股难独善其身</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>设计模式 - 概括说明</title><link>http://www.cnblogs.com/Dabay/archive/2006/04/18/377950.html</link><dc:creator>Dabay</dc:creator><author>Dabay</author><pubDate>Tue, 18 Apr 2006 02:54:00 GMT</pubDate><guid>http://www.cnblogs.com/Dabay/archive/2006/04/18/377950.html</guid><wfw:comment>http://www.cnblogs.com/Dabay/comments/377950.html</wfw:comment><comments>http://www.cnblogs.com/Dabay/archive/2006/04/18/377950.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/Dabay/comments/commentRss/377950.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Dabay/services/trackbacks/377950.html</trackback:ping><description><![CDATA[<p>Design Patterns - Abstract<br>以下摘自<a href="http://www.dofactory.com/Patterns/Patterns.aspx">http://www.dofactory.com/Patterns/Patterns.aspx</a><br><br>
<table cellSpacing=1 cellPadding=1 width="100%" bgColor=white>
    <tbody>
        <tr>
            <td align=left bgColor=#ffcc33 colSpan=2 height=14><b>Creational Patterns</b></td>
        </tr>
        <tr>
            <td align=left width=120 bgColor=#fffaef>&nbsp;&nbsp;<a class=alwayson href="http://www.dofactory.com/Patterns/PatternAbstract.aspx">Abstract Factory</a></td>
            <td align=left bgColor=#fffaef height=14>&nbsp;&nbsp;Creates an instance of several families of classes</td>
        </tr>
        <tr>
            <td align=left width=120 bgColor=#fffaef>&nbsp;&nbsp;<a class=alwayson href="http://www.dofactory.com/Patterns/PatternBuilder.aspx">Builder</a></td>
            <td bgColor=#fffaef height=14>&nbsp;&nbsp;Separates object construction from its representation</td>
        </tr>
        <tr>
            <td align=left width=120 bgColor=#fffaef>&nbsp;&nbsp;<a class=alwayson href="http://www.dofactory.com/Patterns/PatternFactory.aspx" target="">Factory Method</a></td>
            <td align=left bgColor=#fffaef height=14>&nbsp;&nbsp;Creates an instance of several derived classes</td>
        </tr>
        <tr>
            <td align=left width=120 bgColor=#fffaef>&nbsp;&nbsp;<a class=alwayson href="http://www.dofactory.com/Patterns/PatternPrototype.aspx">Prototype</a></td>
            <td align=left bgColor=#fffaef height=14>&nbsp;&nbsp;A fully initialized instance to be copied or cloned</td>
        </tr>
        <tr>
            <td align=left width=120 bgColor=#fffaef>&nbsp;&nbsp;<a class=alwayson href="http://www.dofactory.com/Patterns/PatternSingleton.aspx">Singleton</a></td>
            <td align=left bgColor=#fffaef height=14>&nbsp;&nbsp;A class of which only a single instance can exist</td>
        </tr>
    </tbody>
</table>
</p>
<br>
<table cellSpacing=1 cellPadding=1 width="100%" bgColor=#ffffff>
    <tbody>
        <tr>
            <td align=left bgColor=#ffcc33 colSpan=2 height=14><b>Structural Patterns</b></td>
        </tr>
        <tr>
            <td align=left width=120 bgColor=#fffaef>&nbsp;&nbsp;<a class=alwayson href="http://www.dofactory.com/Patterns/PatternAdapter.aspx"><font color=#002c99>Adapter</font></a></td>
            <td align=left bgColor=#fffaef height=14>&nbsp;&nbsp;Match interfaces of different classes</td>
        </tr>
        <tr>
            <td align=left width=120 bgColor=#fffaef>&nbsp;&nbsp;<a class=alwayson href="http://www.dofactory.com/Patterns/PatternBridge.aspx"><font color=#002c99>Bridge</font></a></td>
            <td align=left bgColor=#fffaef height=14>&nbsp;&nbsp;Separates an object&#8217;s interface from its implementation</td>
        </tr>
        <tr>
            <td align=left width=120 bgColor=#fffaef>&nbsp;&nbsp;<a class=alwayson href="http://www.dofactory.com/Patterns/PatternComposite.aspx"><font color=#002c99>Composite</font></a></td>
            <td align=left bgColor=#fffaef height=14>&nbsp;&nbsp;A tree structure of simple and composite objects</td>
        </tr>
        <tr>
            <td align=left width=120 bgColor=#fffaef>&nbsp;&nbsp;<a class=alwayson href="http://www.dofactory.com/Patterns/PatternDecorator.aspx"><font color=#002c99>Decorator</font></a></td>
            <td align=left bgColor=#fffaef height=14>&nbsp;&nbsp;Add responsibilities to objects dynamically</td>
        </tr>
        <tr>
            <td align=left width=120 bgColor=#fffaef>&nbsp;&nbsp;<a class=alwayson href="http://www.dofactory.com/Patterns/PatternFacade.aspx"><font color=#002c99>Facade</font></a></td>
            <td align=left bgColor=#fffaef height=14>&nbsp;&nbsp;A single class that represents an entire subsystem</td>
        </tr>
        <tr>
            <td align=left width=120 bgColor=#fffaef>&nbsp;&nbsp;<a class=alwayson href="http://www.dofactory.com/Patterns/PatternFlyweight.aspx"><font color=#002c99>Flyweight</font></a></td>
            <td align=left bgColor=#fffaef height=14>&nbsp;&nbsp;A fine-grained instance used for efficient sharing</td>
        </tr>
        <tr>
            <td align=left width=120 bgColor=#fffaef>&nbsp;&nbsp;<a class=alwayson href="http://www.dofactory.com/Patterns/PatternProxy.aspx"><font color=#002c99>Proxy</font></a></td>
            <td align=left bgColor=#fffaef height=14>&nbsp;&nbsp;An object representing another object</td>
        </tr>
    </tbody>
</table>
<br>
<table cellSpacing=1 cellPadding=1 width="100%" bgColor=white>
    <tbody>
        <tr>
            <td align=left bgColor=#ffcc33 colSpan=2 height=14><b>Behavioral Patterns</b></td>
        </tr>
        <tr>
            <td align=left width=120 bgColor=#fffaef>&nbsp;&nbsp;<a class=alwayson href="http://www.dofactory.com/Patterns/PatternChain.aspx"><font color=#002c99>Chain of Resp.</font></a></td>
            <td align=left bgColor=#fffaef height=14>&nbsp;&nbsp;A way of passing a request between a chain of objects</td>
        </tr>
        <tr>
            <td align=left width=120 bgColor=#fffaef>&nbsp;&nbsp;<a class=alwayson href="http://www.dofactory.com/Patterns/PatternCommand.aspx"><font color=#002c99>Command</font></a></td>
            <td align=left bgColor=#fffaef height=14>&nbsp;&nbsp;Encapsulate a command request as an object</td>
        </tr>
        <tr>
            <td align=left width=120 bgColor=#fffaef>&nbsp;&nbsp;<a class=alwayson href="http://www.dofactory.com/Patterns/PatternInterpreter.aspx"><font color=#002c99>Interpreter</font></a></td>
            <td align=left bgColor=#fffaef height=14>&nbsp;&nbsp;A way to include language elements in a program</td>
        </tr>
        <tr>
            <td align=left width=120 bgColor=#fffaef>&nbsp;&nbsp;<a class=alwayson href="http://www.dofactory.com/Patterns/PatternIterator.aspx"><font color=#002c99>Iterator</font></a></td>
            <td align=left bgColor=#fffaef height=14>&nbsp;&nbsp;Sequentially access the elements of a collection</td>
        </tr>
        <tr>
            <td align=left width=120 bgColor=#fffaef>&nbsp;&nbsp;<a class=alwayson href="http://www.dofactory.com/Patterns/PatternMediator.aspx"><font color=#002c99>Mediator</font></a></td>
            <td align=left bgColor=#fffaef height=14>&nbsp;&nbsp;Defines simplified communication between classes</td>
        </tr>
        <tr>
            <td align=left width=120 bgColor=#fffaef>&nbsp;&nbsp;<a class=alwayson href="http://www.dofactory.com/Patterns/PatternMemento.aspx"><font color=#002c99>Memento</font></a></td>
            <td align=left bgColor=#fffaef height=14>&nbsp;&nbsp;Capture and restore an object's internal state</td>
        </tr>
        <tr>
            <td align=left width=120 bgColor=#fffaef>&nbsp;&nbsp;<a class=alwayson href="http://www.dofactory.com/Patterns/PatternObserver.aspx"><font color=#002c99>Observer</font></a></td>
            <td align=left bgColor=#fffaef height=14>&nbsp;&nbsp;A way of notifying change to a number of classes</td>
        </tr>
        <tr>
            <td align=left width=120 bgColor=#fffaef>&nbsp;&nbsp;<a class=alwayson href="http://www.dofactory.com/Patterns/PatternState.aspx"><font color=#002c99>State</font></a></td>
            <td align=left bgColor=#fffaef height=14>&nbsp;&nbsp;Alter an object's behavior when its state changes</td>
        </tr>
        <tr>
            <td align=left width=120 bgColor=#fffaef>&nbsp;&nbsp;<a class=alwayson href="http://www.dofactory.com/Patterns/PatternStrategy.aspx"><font color=#002c99>Strategy</font></a></td>
            <td align=left bgColor=#fffaef height=14>&nbsp;&nbsp;Encapsulates an algorithm inside a class</td>
        </tr>
        <tr>
            <td align=left width=120 bgColor=#fffaef>&nbsp;&nbsp;<a class=alwayson href="http://www.dofactory.com/Patterns/PatternTemplate.aspx"><font color=#002c99>Template Method</font></a></td>
            <td align=left bgColor=#fffaef height=14>&nbsp;&nbsp;Defer the exact steps of an algorithm to a subclass</td>
        </tr>
        <tr>
            <td align=left width=120 bgColor=#fffaef>&nbsp;&nbsp;<a class=alwayson href="http://www.dofactory.com/Patterns/PatternVisitor.aspx"><font color=#002c99>Visitor</font></a></td>
            <td align=left bgColor=#fffaef height=14>&nbsp;&nbsp;Defines a new operation to a class without change</td>
        </tr>
    </tbody>
</table>
<img src ="http://www.cnblogs.com/Dabay/aggbug/377950.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42956/" target="_blank">[新闻]携程范敏：CEO从接发传真做起</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>设计模式 - 享元 &amp; 代理</title><link>http://www.cnblogs.com/Dabay/archive/2006/04/12/373603.html</link><dc:creator>Dabay</dc:creator><author>Dabay</author><pubDate>Wed, 12 Apr 2006 12:07:00 GMT</pubDate><guid>http://www.cnblogs.com/Dabay/archive/2006/04/12/373603.html</guid><wfw:comment>http://www.cnblogs.com/Dabay/comments/373603.html</wfw:comment><comments>http://www.cnblogs.com/Dabay/archive/2006/04/12/373603.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/Dabay/comments/commentRss/373603.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Dabay/services/trackbacks/373603.html</trackback:ping><description><![CDATA[Design Pattern - FlyWeight &amp; Proxy<br><br>FlyWeight : 以共享的方式高效地支持大量的细粒度对象。享元对象能做到共享的关键是区分<span style="COLOR: #ff6600">Intrinsic(共享的信息) 和extrinsic(不共享的信息)</span> 。<br>Proxy : 代理和被代理的对象都继承自同一接口。但是那种HeavyJob()一般放在被代理的类中，<span style="COLOR: #ff6600">需要的时候再建立</span>。<br><br>以下摘录自<a href="http://www.idcdream.net/archive_64750.html">http://www.idcdream.net/archive_64750.html</a><br>(1)适配器模式。这个模式理解起来非常简单，就是把类用另外一种接口封装了一次。这种模式是我们不必仅仅因为类的接口规格不标准而重写一个类。<br>(2)桥接模式。正如书上所说的，这种模式将抽象层和实现层分离。我的理解是它就像是函数指针。指针变量相当于抽象层，它可以指向各种版本的函数，这些函数就是实现层。我们通过改变指针的指向而改变类的工作方式。<br>(3)组合模式。这种模式真得很好，不论简单对象还是组合简单对象得到的复杂对象对客户来说仅仅只有一种接口。这样可以省去一大堆的switch/case。这种模式非常有利于对象的嵌套组合，可以大大简化系统。所以正如书中所说，几乎所有的面向对象的系统都有使用了组合模式。<br>(4)装饰模式。该模式使用了动态的组合，可以为对象动态的添加行为。但是这种模式的适用情况似乎比较少，一般在你因为某种原因无法使用继承来构造新类(使新类具有要添加的行为)的情况下使用该模式。但是这种模式有个缺点，它使得同一个类的对象却拥有不同的行为，因此该模式的使用应该有个限度。<br>(5)外观模式。这个模式理解起来也很简单，就是将系统接口统一集中来减少和其他系统的耦合。就像以前咱们csdn的登陆系统，以前的登陆分布在各个板块样式繁多，这时登陆系统与其他系统的耦合很大，登陆系统有变化时，分布在各个板块的登陆口都要变化。现在好了，登陆口集中到一个页面上了，登陆系统只需在这唯一的页面上作修改就可以了。<br>(6)享元模式。是程序支持大量的小粒度对象。现在想来可能游戏里大量的使用了这种模式。比如魔兽争霸里的某个兵种。你不可能为该兵种的每个对象都载入一次贴图。使用享元模式，只需载入一次贴图放入共享池，每个对象只保存自己特有属性即可。<br>(7)代理模式。为了控制对特定类的访问，我们提供一个类作为接口。这种模式应该还是比较常用的，为了使问题简单清晰，我们经常要限制客户对某些类的访问。由于代理的加入，客户可以得到更加方便和智能的类。 
<img src ="http://www.cnblogs.com/Dabay/aggbug/373603.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42955/" target="_blank">[新闻]2008年10月13日科技博客精选</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>设计模式 - 组成 &amp; 装饰 &amp; 外观</title><link>http://www.cnblogs.com/Dabay/archive/2006/04/10/371219.html</link><dc:creator>Dabay</dc:creator><author>Dabay</author><pubDate>Mon, 10 Apr 2006 05:08:00 GMT</pubDate><guid>http://www.cnblogs.com/Dabay/archive/2006/04/10/371219.html</guid><wfw:comment>http://www.cnblogs.com/Dabay/comments/371219.html</wfw:comment><comments>http://www.cnblogs.com/Dabay/archive/2006/04/10/371219.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/Dabay/comments/commentRss/371219.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Dabay/services/trackbacks/371219.html</trackback:ping><description><![CDATA[因为在的<a title=吕震宇的博客 href="http://zhenyulu.cnblogs.com/">吕震宇的博客</a>上找到了关于设计模式很好的讲解, 所以不打算在自己的博客上写程序了, 只是记录一些自己的想法...<br><br>Composite : 把容器和其中的内容看成一样的东西, 就好像属性结构的目录, 当dir的时候看到的不是文件就是目录, 目录又可以包含其他的文件和目录...<br><br>Decorate : 基类比较小, 但是想在它的基础之上其他一些其他装饰的功能, 而不试用继承的方式...<br><br>Facade : 外部和内部之间的接口, 外部调用Facade, Facade把内部实现隐藏, 在外部看来只需要对Facade进行操作; Facade通常是Singleton...
<img src ="http://www.cnblogs.com/Dabay/aggbug/371219.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42954/" target="_blank">[新闻]Google Android手机大受欢迎,已经订出150万台</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>设计模式 - 桥模式</title><link>http://www.cnblogs.com/Dabay/archive/2006/04/03/366049.html</link><dc:creator>Dabay</dc:creator><author>Dabay</author><pubDate>Mon, 03 Apr 2006 15:15:00 GMT</pubDate><guid>http://www.cnblogs.com/Dabay/archive/2006/04/03/366049.html</guid><wfw:comment>http://www.cnblogs.com/Dabay/comments/366049.html</wfw:comment><comments>http://www.cnblogs.com/Dabay/archive/2006/04/03/366049.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/Dabay/comments/commentRss/366049.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Dabay/services/trackbacks/366049.html</trackback:ping><description><![CDATA[Design Patterns - Bridge<br>我觉得bridge就形式上来说和adapter差不多咯, 只是确切的把功能和实现分离<br><br>功能部分:<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">abstract</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;MoneyFactory<br><img id=Codehighlighter1_35_77_Open_Image onclick="this.style.display='none'; Codehighlighter1_35_77_Open_Text.style.display='none'; Codehighlighter1_35_77_Closed_Image.style.display='inline'; Codehighlighter1_35_77_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_35_77_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_35_77_Closed_Text.style.display='none'; Codehighlighter1_35_77_Open_Image.style.display='inline'; Codehighlighter1_35_77_Open_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_35_77_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_35_77_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">virtual</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;MakeMoney()<br><img id=Codehighlighter1_71_75_Open_Image onclick="this.style.display='none'; Codehighlighter1_71_75_Open_Text.style.display='none'; Codehighlighter1_71_75_Closed_Image.style.display='inline'; Codehighlighter1_71_75_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_71_75_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_71_75_Closed_Text.style.display='none'; Codehighlighter1_71_75_Open_Image.style.display='inline'; Codehighlighter1_71_75_Open_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_71_75_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_71_75_Open_Text><span style="COLOR: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;ChinaMF&nbsp;:&nbsp;MoneyFactory<br><img id=Codehighlighter1_36_249_Open_Image onclick="this.style.display='none'; Codehighlighter1_36_249_Open_Text.style.display='none'; Codehighlighter1_36_249_Closed_Image.style.display='inline'; Codehighlighter1_36_249_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_36_249_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_36_249_Closed_Text.style.display='none'; Codehighlighter1_36_249_Open_Image.style.display='inline'; Codehighlighter1_36_249_Open_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_36_249_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_36_249_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000">&nbsp;MoneyMakeImp&nbsp;mmi;<br><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;ChinaMF(MoneyMakeImp&nbsp;mmi)<br><img id=Codehighlighter1_103_124_Open_Image onclick="this.style.display='none'; Codehighlighter1_103_124_Open_Text.style.display='none'; Codehighlighter1_103_124_Closed_Image.style.display='inline'; Codehighlighter1_103_124_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_103_124_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_103_124_Closed_Text.style.display='none'; Codehighlighter1_103_124_Open_Image.style.display='inline'; Codehighlighter1_103_124_Open_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_103_124_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_103_124_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.mmi&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;mmi;<br><img src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">override</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;MakeMoney()<br><img id=Codehighlighter1_164_247_Open_Image onclick="this.style.display='none'; Codehighlighter1_164_247_Open_Text.style.display='none'; Codehighlighter1_164_247_Closed_Image.style.display='inline'; Codehighlighter1_164_247_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_164_247_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_164_247_Closed_Text.style.display='none'; Codehighlighter1_164_247_Open_Image.style.display='inline'; Codehighlighter1_164_247_Open_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_164_247_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_164_247_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.Console.Write(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">The&nbsp;ChinaMF&nbsp;is&nbsp;making&nbsp;money<img src="http://www.cnblogs.com/Images/dot.gif">\t</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mmi.MakeMoney();<br><img src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
<br>实现部分:<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">abstract</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;MoneyMakeImp<br><img id=Codehighlighter1_35_76_Open_Image onclick="this.style.display='none'; Codehighlighter1_35_76_Open_Text.style.display='none'; Codehighlighter1_35_76_Closed_Image.style.display='inline'; Codehighlighter1_35_76_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_35_76_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_35_76_Closed_Text.style.display='none'; Codehighlighter1_35_76_Open_Image.style.display='inline'; Codehighlighter1_35_76_Open_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_35_76_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_35_76_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">virtual</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;MakeMoney()<br><img id=Codehighlighter1_71_74_Open_Image onclick="this.style.display='none'; Codehighlighter1_71_74_Open_Text.style.display='none'; Codehighlighter1_71_74_Closed_Image.style.display='inline'; Codehighlighter1_71_74_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_71_74_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_71_74_Closed_Text.style.display='none'; Codehighlighter1_71_74_Open_Image.style.display='inline'; Codehighlighter1_71_74_Open_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_71_74_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_71_74_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;ChinaMakeImp&nbsp;:&nbsp;MoneyMakeImp<br><img id=Codehighlighter1_41_141_Open_Image onclick="this.style.display='none'; Codehighlighter1_41_141_Open_Text.style.display='none'; Codehighlighter1_41_141_Closed_Image.style.display='inline'; Codehighlighter1_41_141_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_41_141_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_41_141_Closed_Text.style.display='none'; Codehighlighter1_41_141_Open_Image.style.display='inline'; Codehighlighter1_41_141_Open_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_41_141_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_41_141_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">override</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;MakeMoney()<br><img id=Codehighlighter1_78_139_Open_Image onclick="this.style.display='none'; Codehighlighter1_78_139_Open_Text.style.display='none'; Codehighlighter1_78_139_Closed_Image.style.display='inline'; Codehighlighter1_78_139_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_78_139_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_78_139_Closed_Text.style.display='none'; Codehighlighter1_78_139_Open_Image.style.display='inline'; Codehighlighter1_78_139_Open_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_78_139_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_78_139_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.Console.Write(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">RMBs&nbsp;are&nbsp;successfully&nbsp;made!\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
<br>测试程序:<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;Main()<br><img id=Codehighlighter1_26_144_Open_Image onclick="this.style.display='none'; Codehighlighter1_26_144_Open_Text.style.display='none'; Codehighlighter1_26_144_Closed_Image.style.display='inline'; Codehighlighter1_26_144_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_26_144_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_26_144_Closed_Text.style.display='none'; Codehighlighter1_26_144_Open_Image.style.display='inline'; Codehighlighter1_26_144_Open_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_26_144_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_26_144_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;MoneyMakeImp&nbsp;mm&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;ChinaMakeImp();<br><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;MoneyFactory&nbsp;mf&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;ChinaMF(mm);<br><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;mf.MakeMoney();<br><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;System.Console.Read();<br><img src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
<a title="Bridge Demo" href="http://www.cnblogs.com/Files/Dabay/Bridge.rar">Bridge Demo</a>
<img src ="http://www.cnblogs.com/Dabay/aggbug/366049.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42953/" target="_blank">[新闻]13个大文件邮件传送服务</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>设计模式 - 配置器</title><link>http://www.cnblogs.com/Dabay/archive/2006/04/02/365142.html</link><dc:creator>Dabay</dc:creator><author>Dabay</author><pubDate>Sun, 02 Apr 2006 14:24:00 GMT</pubDate><guid>http://www.cnblogs.com/Dabay/archive/2006/04/02/365142.html</guid><wfw:comment>http://www.cnblogs.com/Dabay/comments/365142.html</wfw:comment><comments>http://www.cnblogs.com/Dabay/archive/2006/04/02/365142.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/Dabay/comments/commentRss/365142.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Dabay/services/trackbacks/365142.html</trackback:ping><description><![CDATA[DesignPattern - Adapter<br><br>已经有的存在的类,可能是别人写的,反正就是我们现在想拿来用的类SpecialOutput<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;SpecialOutput<br><img id=Codehighlighter1_27_191_Open_Image onclick="this.style.display='none'; Codehighlighter1_27_191_Open_Text.style.display='none'; Codehighlighter1_27_191_Closed_Image.style.display='inline'; Codehighlighter1_27_191_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_27_191_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_27_191_Closed_Text.style.display='none'; Codehighlighter1_27_191_Open_Image.style.display='inline'; Codehighlighter1_27_191_Open_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_27_191_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_27_191_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;PrintSquare()<br><img id=Codehighlighter1_57_120_Open_Image onclick="this.style.display='none'; Codehighlighter1_57_120_Open_Text.style.display='none'; Codehighlighter1_57_120_Closed_Image.style.display='inline'; Codehighlighter1_57_120_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_57_120_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_57_120_Closed_Text.style.display='none'; Codehighlighter1_57_120_Open_Image.style.display='inline'; Codehighlighter1_57_120_Open_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_57_120_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_57_120_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(Int32&nbsp;i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;i</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">;&nbsp;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">*&nbsp;*&nbsp;*&nbsp;*</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;PrintUnderline()<br><img id=Codehighlighter1_154_189_Open_Image onclick="this.style.display='none'; Codehighlighter1_154_189_Open_Text.style.display='none'; Codehighlighter1_154_189_Closed_Image.style.display='inline'; Codehighlighter1_154_189_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_154_189_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_154_189_Closed_Text.style.display='none'; Codehighlighter1_154_189_Open_Image.style.display='inline'; Codehighlighter1_154_189_Open_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_154_189_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_154_189_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">_______</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
我们自己的类Output想使用它的功能<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;Output<br><img id=Codehighlighter1_20_189_Open_Image onclick="this.style.display='none'; Codehighlighter1_20_189_Open_Text.style.display='none'; Codehighlighter1_20_189_Closed_Image.style.display='inline'; Codehighlighter1_20_189_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_20_189_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_20_189_Closed_Text.style.display='none'; Codehighlighter1_20_189_Open_Image.style.display='inline'; Codehighlighter1_20_189_Open_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_20_189_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_20_189_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;SpecialOutput&nbsp;so</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;SpecialOutput();<br><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;PrintSquare()<br><img id=Codehighlighter1_107_130_Open_Image onclick="this.style.display='none'; Codehighlighter1_107_130_Open_Text.style.display='none'; Codehighlighter1_107_130_Closed_Image.style.display='inline'; Codehighlighter1_107_130_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_107_130_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_107_130_Closed_Text.style.display='none'; Codehighlighter1_107_130_Open_Image.style.display='inline'; Codehighlighter1_107_130_Open_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_107_130_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_107_130_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;so.PrintSquare();<br><img src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;PrintUnders()<br><img id=Codehighlighter1_161_187_Open_Image onclick="this.style.display='none'; Codehighlighter1_161_187_Open_Text.style.display='none'; Codehighlighter1_161_187_Closed_Image.style.display='inline'; Codehighlighter1_161_187_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_161_187_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_161_187_Closed_Text.style.display='none'; Codehighlighter1_161_187_Open_Image.style.display='inline'; Codehighlighter1_161_187_Open_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_161_187_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_161_187_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;so.PrintUnderline();<br><img src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
测试程序<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;App<br><img id=Codehighlighter1_17_139_Open_Image onclick="this.style.display='none'; Codehighlighter1_17_139_Open_Text.style.display='none'; Codehighlighter1_17_139_Closed_Image.style.display='inline'; Codehighlighter1_17_139_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_17_139_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_17_139_Closed_Text.style.display='none'; Codehighlighter1_17_139_Open_Image.style.display='inline'; Codehighlighter1_17_139_Open_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_17_139_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_17_139_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;Main()<br><img id=Codehighlighter1_47_137_Open_Image onclick="this.style.display='none'; Codehighlighter1_47_137_Open_Text.style.display='none'; Codehighlighter1_47_137_Closed_Image.style.display='inline'; Codehighlighter1_47_137_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_47_137_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_47_137_Closed_Text.style.display='none'; Codehighlighter1_47_137_Open_Image.style.display='inline'; Codehighlighter1_47_137_Open_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_47_137_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_47_137_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Output&nbsp;o&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Output();<br><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o.PrintSquare();<br><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o.PrintUnders();<br><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.ReadLine();<br><img src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
<a title="Adapter Demo" href="http://www.cnblogs.com/Files/Dabay/Adapter.rar">Adapter Demo</a>
<img src ="http://www.cnblogs.com/Dabay/aggbug/365142.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42952/" target="_blank">[新闻]微型博客Twitter取消IM服务 称其ROI差</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item></channel></rss>