<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_王书奎(网名:无忌)</title><subtitle type="text"/><id>http://feed.cnblogs.com/blog/u/61137/rss</id><updated>2012-04-20T04:31:17Z</updated><author><name>王书奎(网名:无忌)</name><uri>http://www.cnblogs.com/6666/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/6666/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/61137/rss"/><entry><id>http://www.cnblogs.com/6666/archive/2012/04/20/1620215.html</id><title type="text">极限编程一 概述</title><summary type="text">极限编程诞生于一种加强开发者与用户的沟通需求，让客户全面参与软件的开发设计，保证变化的需求及时得到修正。要让客户能方便地与开发人员沟通，一定要用客户理解的语言，先测试再编码就是先给客户软件的外部轮廓，客户使用的功能展现，让客户感觉到未来软件的样子，先测试再编码与瀑布模型显然是背道而驰的。同时，极限编程注重用户反馈与让客户加入开发是一致的，让客户参与就是随时反馈软件是否符合客户的要求。有了反馈，开发子过程变短，迭代也就很自然出现了，快速迭代，小版本发布都让开发过程变成更多的自反馈过程，有些象更加细化的快速模型法。当然极限编程还加入了很多激励开发人员的“措施”，如结队编程、40小时工作等。在XP的</summary><published>2012-04-20T04:29:00Z</published><updated>2012-04-20T04:29:00Z</updated><author><name>王书奎(网名:无忌)</name><uri>http://www.cnblogs.com/6666/</uri></author><link rel="alternate" href="http://www.cnblogs.com/6666/archive/2012/04/20/1620215.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/6666/archive/2012/04/20/1620215.html"/><content type="html">&lt;p&gt;&lt;span class="highlightedSearchTerm"&gt;&lt;span style="background-color: #ffffaa;"&gt;极限编程&lt;/span&gt;&lt;/span&gt;诞生于一种加强开发者与用户的沟通需求，让客户全面参与软件的开发设计，保证变化的需求及时得到修正。要让客户能方便地与开发人员沟通，一定要用客户理解的语言，先测试再编码就是先给客户软件的外部轮廓，客户使用的功能展现，让客户感觉到未来软件的样子，先测试再编码与瀑布模型显然是背道而驰的。同时，&lt;span class="highlightedSearchTerm"&gt;&lt;span style="background-color: #ffffaa;"&gt;极限编程&lt;/span&gt;&lt;/span&gt;注重用户反馈与让客户加入开发是一致的，让客户参与就是随时反馈软件是否符合客户的要求。有了反馈，开发子过程变短，迭代也就很自然出现了，快速迭代，小版本发布都让开发过程变成更多的自反馈过程，有些象更加细化的快速模型法。当然&lt;span class="highlightedSearchTerm"&gt;&lt;span style="background-color: #ffffaa;"&gt;极限编程&lt;/span&gt;&lt;/span&gt;还加入了很多激励开发人员的&amp;ldquo;措施&amp;rdquo;，如结队编程、40小时工作等。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;在XP的项目开发中，首先引入了&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color: red;"&gt;四个变量：&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;成本、时间、质量和范围&lt;/span&gt;&lt;/strong&gt;，&lt;/p&gt;&lt;p&gt;通过研究变量之间的相互作用，将项目开发分析的更加透彻，成功讲述一个项目成功的原则。&lt;/p&gt;&lt;p&gt;为了能成功地实施XP，XP制定了&lt;/p&gt;&lt;p&gt;&lt;strong style="color: red;"&gt;四个准则(核心)&lt;/strong&gt;：&lt;/p&gt;&lt;p&gt;&lt;span style="color: #0000ff;"&gt;&lt;strong&gt;沟通、简单、反馈和勇气&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;和&lt;/p&gt;&lt;p&gt;&lt;span style="color: red;"&gt;&lt;strong&gt;十二条原则&lt;/strong&gt;&lt;/span&gt;：&lt;/p&gt;&lt;p&gt;&lt;span style="color: #0000ff;"&gt;&lt;strong&gt;计划游戏、小版本、隐喻、简单设计、测试、重构、结队编程、代码集体所有、持续集成、每周工作40小时、现场客户、编码标准&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;以及对开发人员的&lt;/p&gt;&lt;p&gt;&lt;strong style="color: red;"&gt;工作要求&lt;/strong&gt;：&lt;/p&gt;&lt;p&gt;&lt;strong style="color: #0000ff;"&gt;编码、测试、倾听和设计&lt;/strong&gt;。&lt;/p&gt;&lt;p&gt;提出这些要求和原则后，XP有提出了一系列的&lt;/p&gt;&lt;p&gt;&lt;strong style="color: #ff0000;"&gt;解决方案(&lt;span style="color: #ff0000;"&gt;也就是策略)&lt;/span&gt;&lt;/strong&gt;&lt;span style="color: #ff0000;"&gt;，&lt;/span&gt;&lt;/p&gt;&lt;p&gt;其中包含：&lt;/p&gt;&lt;p&gt;&lt;strong style="color: #0000ff;"&gt;管理策略、设施策略、计划策略、开发策略、设计策略和测试策略&lt;/strong&gt;。&lt;/p&gt;&lt;p&gt;在真正去实现XP时，XP又提供了&lt;/p&gt;&lt;p&gt;&lt;strong style="color: #ff0000;"&gt;将策略成功应用的实践:&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;其中主要包括：&lt;/p&gt;&lt;p&gt;&lt;strong style="color: #0000ff;"&gt;测试驱动开发、结队编程、重构和极限编程工具&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color: #ff0000;"&gt;四个核心:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;极限编程的核心有四个，交流、简单、反馈和勇气，这四个原则大家在平时做项目的过程中一定也注意到了。但是两位大师Kent Beck 和 Martin Fowler能够把这四点归结在一起，使他们能够一起组成极限编程这架四轮马车，却是个不小的创造的。&lt;br /&gt;&lt;br /&gt;下面仅就自己的学习和简单的实践过程中碰到的问题来谈谈自己对这四个核心的一些理解。&lt;br /&gt;&lt;br /&gt;一、交流&lt;br /&gt;&lt;br /&gt;1)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;研发人员和客户的交流&lt;br /&gt;&lt;br /&gt;这一点和传统的软件工程中有些类似，在平时研发软件的过程中也很注重和客户的交流，特别是在需求分析、概要设计连同验收测试的时候，研发人员和客户有效的交流是必不可少的，那将直接影响到一个项目是否能够符合客户的需要。&lt;br /&gt;&lt;br /&gt;然而，在极限编程中客户所处的研发阶段有些不同，传统的项目研发过程中，客户只在最初的时候和最后的时候需要和研发人员在一起，他们的责任也就是在于业务功能上的帮助，但是这样就不可避免的导致了这样的一个状况：在项目最初的时候客户提出了错误的或不准确的需求，然后项目组开始研发，客户很长一段时间不介入项目，而在项目验收的时候发现有些地方有错误或需要修改，此时项目组不得不付出很多的时间和精力来适应客户的需求。这是时间和资金上很大的浪费。在极限编程中，需要一个很精通业务的现场客户，他们不但随时提供业务上的信息，而且要编写业务验收测试的测试代码，这样就能够在很大的程度上确保项目的方向不会错误。&lt;br /&gt;&lt;br /&gt;极限编程的过程是&amp;ldquo;瞄准－》射击－》调整－》调整&amp;rdquo;的过程，并不强求在项目开始的时候就准确把握项目的方向，由于有现场客户的存在，项目的方向是不断的调整中的，这样就能够极大程度上避免项目走弯路。&lt;br /&gt;&lt;br /&gt;2)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;研发人员之间的交流&lt;br /&gt;&lt;br /&gt;当前在招聘研发人员连同其他一切的工作人员的时候，我们都会强调团队精神，但是在实际的工作过程中，我们除了在出现问题，而且自己解决出现很大困难的时候才会去请教别人（我以前是这样的，可能每个人都会不同），再就是大家能够一起聚在一起闲聊、吃饭、唱歌等等研发过程以外的活动。以上的这些的确能够使团队之中产生一定的凝聚力，能够让大家和睦相处，但是离真正意义上的团队更有一定的差距。&lt;br /&gt;&lt;br /&gt;我们所受到的教育一直培养的是一种单独解决问题的能力，所以，再碰到问题的时候我们想到的大多是自己来就解决，而不是和其他人一起来完成。&lt;br /&gt;&lt;br /&gt;极限编程的实践中有一个很重要的原则就是结对编程，这个原则看起来似乎有些奇怪。因为我们第一个想到的问题就是让两个人来同时做一件事情，那么不就是浪费了一个人的生产力了吗？但实际上并非如此，这里所谓的结对编程并非是个人在编程，另一个在看着，另外一个人也同样起着很重要的作用，他的大脑也在不停地运转，他需要帮助编码的人找到低级的失误，防止其编码出现方向性的错误，特别是在出现一个正在编码的人不擅长解决的问题的时候，他会直接拿过键盘，和其交换角色，直接来进行编码。&lt;br /&gt;&lt;br /&gt;这样做的好处也许只有在实践了之后才能够体会到，他不但能够避免一些错误的发生，而且能够通过直接的讨论来解决一些容易产生歧义的问题。而且两个人的思路碰撞出来的火花，能够更加快速的解决问题。而且，在交流的过程中，大家的水平也会有很快的提高。结对编程的过程也是一起学习的过程。（只可惜我这里只有一个人，没有办法长期实践，但只要有机会我就会努力的）&lt;br /&gt;&lt;br /&gt;3)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;研发人员和管理人员的交流&lt;br /&gt;&lt;br /&gt;在一个项目组里面，管理人员和研发人员之间的关系是影响项目的一个很重要的因素，假如处理不好的化，可能会直接导致一个项目的失败。而管理人员所具备的素质更是需要很高的。假如是个从技术人员转型的管理者，那么他的管理能力需要很大的提高，否则就会因为管理能力的缺乏而导致项目的混乱。而对于一个单纯的具备管理技能的人来说，怎样能够得到技术人员的佩服是十分重要的，否则根本就无法使研发人员听从管理，那么他的位置也就岌岌可危了。&lt;br /&gt;&lt;br /&gt;而且，假如研发人员能够和管理人员进行好的交流，那么他们的工作环境就会得到很大的改善，并不一定要很豪华的房间和高级的家具，只需要一个能够很舒服工作的环境，就能够让一个团队的战斗力得到很大的提升。而且，对于一个项目的计划和预算，假如研发人员能够提出自己的想法，就会避免最后争取到了项目却最终得不到利润的情况的出现。&lt;br /&gt;&lt;br /&gt;管理人员也应该主动的听取研发人员的意见，很多的研发人员都是一些比较内向的人，假如不向他们询问，他们只会将自己心中的不满埋在心中，最后的结果是突然的爆发，然后辞职离去，造成重大的损失。&lt;br /&gt;&lt;br /&gt;二、简单&lt;br /&gt;&lt;br /&gt;1)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;设计的简单&lt;br /&gt;&lt;br /&gt;在极限编程的过程中，提倡一种简单设计的实践。这样做的原因是由于过多的设计文档会使我们浪费太多的时间在上面，而且设计文档没有不修改的，可能在项目结束的时候，我们会发现当初的设计文档早已使面目全非了。&lt;br /&gt;&lt;br /&gt;所以，我们在最初的设计工作中要做的是明确我们要实现的最重要的功能，然后设计出总体的框架和核心的技术，这些文档从头到尾不会超过十页纸，那样即使有了一些改变，我们也无需花费太多的时间来进行修改了。特别是在有了修改之后，我们无需费很大的力气去让代码和文档完全一致了。&lt;br /&gt;&lt;br /&gt;但是，简单的设计并不意味着这些设计是可有可无的，相反，那简单的几页纸更加重要，因为一个项目的核心内容都在上面，所以在编写的过程中一定要慎重。&lt;br /&gt;&lt;br /&gt;2)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;编码的简单&lt;br /&gt;&lt;br /&gt;编码的简单表现在迭代的过程中，在极限编程的过程，并非要一下子实现任何需要的功能，也无需一下子就完成以后不再改变，相反，变化在极限编程中是被提倡的。我们能够先简单的实现一点功能，然后添加周详的内容，再后对程式进行重构，最终的代码将是很简单的，因为依照重构的原则进行修改了之后，任何的类和函数、过程都是很简短而非冗长的，每一个模块完成的功能是很明确的。&lt;br /&gt;&lt;br /&gt;但是，不要把简单和随意等同起来。尽管我们要实现简单的编码，依然要有编码的标准，使得任何的人都能够很容易的看懂我们编写的程式。其他象属性要使用名词来定义，过程要使用动词来开头的标准也是很有用的，我们应该遵循。&lt;br /&gt;&lt;br /&gt;3)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;注释的简单&lt;br /&gt;&lt;br /&gt;在某些项目中，注释需要是很严格的，甚至于规定在一个程式中注释量必须要达到一个百分比。这个初一看起来很有道理，因为注释能够让我们更好的理解程式的功能，但是细想一下，却完全不是那么一回事。&lt;br /&gt;&lt;br /&gt;曾有人说过&amp;ldquo;一般的程式员能够编写出电脑能看懂的程式，而一个真正的高手能够编写出普通人也能够看懂的程式&amp;rdquo;。的确是那样，和其让注释来解释程式，不如在给变量和过程、函数起名的时候用大家都能够理解的，那样即使没有太多的注释，另外的一个程式员想要读懂您写的程式也不是一件很困难的事情了。&lt;br /&gt;&lt;br /&gt;所以，在编写代码的过程中应该尽可能的使用代码本身来说明问题，而非借助注释的帮助，我们要编写的是代码，假如里面带有太多的无关轻重的代码，一方面会浪费我们的时间，还可能引起歧义；另一方面向微软的Windows源代码里面充满的发牢骚的注释就更不应该了。那些注释只是会给阅读代码的人带来分散注意力的效果了。&lt;br /&gt;&lt;br /&gt;4)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;测试的简单&lt;br /&gt;&lt;br /&gt;通常我们的项目假如是按照瀑布式研发的化，测试会全部放在编码完成之后，其中包括单体测试，集成测试，功能测试连同验收测试等等，而且大多数的测试是通过手工来完成的。所以依据经验来说，假如编码使用了20％的时间，测试至少要用掉40％以上的时间。而且在测试的过程中，更有好多问题需要修改，这也是导致测试耗费了大量时间的原因。&lt;br /&gt;&lt;br /&gt;而在极限编程中，测试是通过编写测试代码来自动化完成的。特别是在一些面向对象的编程环境中，我们能够使用xUnit工具来快速、有效的进行单体测试。而且编写这些单体测试代码甚至能够是在正式编码之前。每一次修改了程式之后，都要运行测试代码来看程式是否有问题。而且对于程式的集成，极限编程提倡的是持续集成，也就是不断的将编写好的通过了单体测试的代码模块集成到编写完毕的系统中，在那里能够直接进行Test Suit的集成测试，从而确保代码不会影响到整个系统。&lt;br /&gt;&lt;br /&gt;我们能够看到，极限编程中的编码和测试都是一小步一小步的进行的，这样就方便我们及时的发现并修改出现的错误。而自动化测试工具确保了我们的工作的效率，使我们避免了过多重复的工作。&lt;/p&gt;&lt;script type="text/javascript"&gt;// &lt;![CDATA[google_ad_client = "pub-2253830618388126";/* 468x15, 创建于 09-8-12 */google_ad_slot = "0553261712";google_ad_width = 468;google_ad_height = 15;// ]]&gt;&lt;/script&gt;&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;// &lt;![CDATA[// ]]&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;// &lt;![CDATA[google_protectAndRun("ads_core.google_render_ad", google_handleError, google_render_ad);// ]]&gt;&lt;/script&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;　&lt;span style="color: red;"&gt;　十二条原则：&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;1、角色定位：&lt;span class="highlightedSearchTerm"&gt;&lt;span style="background-color: #ffffaa;"&gt;极限编程&lt;/span&gt;&lt;/span&gt;把客户非常明确地加入到开发的团队中，并参与日常开发与沟通会议。客户是软件的最终使用者，使用是否合意一定以客户的意见为准。不仅让客户参与设计讨论，而且让客户负责编写拥护故事(User Story)，也就是功能需求，包括软件要实现的功能以及完成功能的业务操作过程。用户在软件开发过程中的责任被提到与开发者同样的重要程度。&lt;/p&gt;&lt;p&gt;2、敏捷开发：敏捷开发追求合作与响应变化。迭代就是缩短版本的发布周期，缩短到周、日，完成一个小的功能模块，可以快速测试、并及时展现给客户，以便及时反馈。小版本加快了客户沟通反馈的频率，功能简单，在设计、文挡环节大大简化。&lt;span class="highlightedSearchTerm"&gt;&lt;span style="background-color: #ffffaa;"&gt;极限编程&lt;/span&gt;&lt;/span&gt;中文挡不再重要的原因就是因为每个版本功能简单，不需要复杂的设计过程。&lt;span class="highlightedSearchTerm"&gt;&lt;span style="background-color: #ffffaa;"&gt;极限编程&lt;/span&gt;&lt;/span&gt;追求设计简单，实现客户要求即可，无需为扩展考虑太多，因为客户的新需求随时可以添加。&lt;/p&gt;&lt;p&gt;3、追求价值：&lt;span class="highlightedSearchTerm"&gt;&lt;span style="background-color: #ffffaa;"&gt;极限编程&lt;/span&gt;&lt;/span&gt;把软件开发变成自我与管理的挑战，追求沟通、简单、反馈、勇气，体现开发团队的人员价值，激发参与者的情绪，最大限度地调动开发者的积极性，情绪高涨，认真投入，开发的软件质量就大大提高。结对编程就是激发队员才智的一种方式。&lt;/p&gt;&lt;p&gt;&lt;span class="highlightedSearchTerm"&gt;&lt;span style="background-color: #ffffaa;"&gt;极限编程&lt;/span&gt;&lt;/span&gt;把软件开发过程重新定义为聆听、测试、编码、设计的迭代循环过程，确立了测试-&amp;gt;编码-&amp;gt;重构(设计)的软件开发管理思路。&lt;/p&gt;&lt;p&gt;&lt;span class="highlightedSearchTerm"&gt;&lt;span style="background-color: #ffffaa;"&gt;极限编程&lt;/span&gt;&lt;/span&gt;的12个实践是&lt;span class="highlightedSearchTerm"&gt;&lt;span style="background-color: #ffffaa;"&gt;极限编程&lt;/span&gt;&lt;/span&gt;者总结的实践经典，是体现&lt;span class="highlightedSearchTerm"&gt;&lt;span style="background-color: #ffffaa;"&gt;极限编程&lt;/span&gt;&lt;/span&gt;管理的原则，对&lt;span class="highlightedSearchTerm"&gt;&lt;span style="background-color: #ffffaa;"&gt;极限编程&lt;/span&gt;&lt;/span&gt;具有指导性的意义，但并非一定要完全遵守12个实践，主要看它给软件过程管理带来的价值。 转自项目管理者联盟项目管理者联盟1、小版本。为了高度迭代，与客户展现开发的进展，小版本发布是一个可交流的好办法，客户可以针对性提出反馈。但小版本把模块缩得很小，会影响软件的整体思路连贯，所以小版本也需要总体合理的规划。&lt;/p&gt;&lt;p&gt;2、规划游戏。就是客户需求，以客户故事的形式，由客户负责编写。&lt;span class="highlightedSearchTerm"&gt;&lt;span style="background-color: #ffffaa;"&gt;极限编程&lt;/span&gt;&lt;/span&gt;不讲求统一的客户需求收集，也不是由开发人员整理，而是采取让客户编写，开发人员进行分析，设定优先级别，并进行技术实现。当然游戏规则可进行多次，每次迭代完毕后再行修改。客户故事是开发人员与客户沟通的焦点，也是版本设计的依据，所以其管理一定是有效的、沟通顺畅的。 项目管理培训&lt;/p&gt;&lt;p&gt;3、现场客户。&lt;span class="highlightedSearchTerm"&gt;&lt;span style="background-color: #ffffaa;"&gt;极限编程&lt;/span&gt;&lt;/span&gt;要求客户参与开发工作，客户需求就是客户负责编写的，所以要求客户在开发现场一起工作，并为每次迭代提供反馈。 bbs.mypm.net&lt;/p&gt;&lt;p&gt;4、隐喻。隐喻是让项目参与人员都必须对一些抽象的概念理解一致，也就是我们常说的行业术语，因为业务本身的术语开发人员不熟悉，软件开发的术语客户不理解，因此开始要先明确双方使用的隐喻，避免歧异。 项目经理圈子转自项目管理者联盟5、简单设计。&lt;span class="highlightedSearchTerm"&gt;&lt;span style="background-color: #ffffaa;"&gt;极限编程&lt;/span&gt;&lt;/span&gt;体现跟踪客户的需求变化，既然需求是变化的，所以对于目前的需求就不必过多地考虑扩展性的开发，讲求简单设计，实现目前需求即可。简单设计的本身也为短期迭代提供了方便，若开发者考虑&amp;ldquo;通用&amp;rdquo;因素较多，增加了软件的复杂度，开发的迭代周期就会加长。简单设计包括四方面含义：1、通过测试。2、避免重复代码。3、明确表达每步编码的目的，代码可读性强。4、尽可能少的对象类和方法。由于采用简单设计，所以&lt;span class="highlightedSearchTerm"&gt;&lt;span style="background-color: #ffffaa;"&gt;极限编程&lt;/span&gt;&lt;/span&gt;没有复杂的设计文档要求。&lt;/p&gt;&lt;p&gt;6、重构。重构是&lt;span class="highlightedSearchTerm"&gt;&lt;span style="background-color: #ffffaa;"&gt;极限编程&lt;/span&gt;&lt;/span&gt;先测试后编码的必然需求，为了整体软件可以先进行测试，对于一些软件要开发的模块先简单模拟，让编译通过，到达测试的目的。然后再对模块具体&amp;ldquo;优化&amp;rdquo;，所以重构包括模块代码的优化与具体代码的开发。重构是使用了&amp;ldquo;物理学&amp;rdquo;的一个概念，是在不影响物体外部特性的前提下，重新优化其内部的机构。这里的外部特性就是保证测试的通过。&lt;/p&gt;&lt;p&gt;7、测试驱动开发。&lt;span class="highlightedSearchTerm"&gt;&lt;span style="background-color: #ffffaa;"&gt;极限编程&lt;/span&gt;&lt;/span&gt;是以测试开始的，为了可以展示客户需求的实现，测试程序优先设计，测试是从客户实用的角度出发，客户实际使用的软件界面着想，测试是客户需求的直接表现，是客户对软件过程的理解。测试驱动开发，也就是客户的需求驱动软件的开发。&lt;/p&gt;&lt;p&gt;8、持续集成。集成的理解就是提交软件的展现，由于采用测试驱动开发、小版本的方式，所以不断集成(整体测试)是与客户沟通的依据，也是让客户提出反馈意见的参照。持续集成也是完成阶段开发任务的标志。 blog.mypm.net&lt;/p&gt;&lt;p&gt;9、结对编程。这是&lt;span class="highlightedSearchTerm"&gt;&lt;span style="background-color: #ffffaa;"&gt;极限编程&lt;/span&gt;&lt;/span&gt;最有争议的实践。就是两个程序员合用一台计算机编程，一个编码，一个检查，增加专人审计是为了提供软件编码的质量。两个人的角色经常变换，保持开发者的工作热情。这种编程方式对培养新人或开发难度较大的软件都有非常好的效果。 10、代码共有。在&lt;span class="highlightedSearchTerm"&gt;&lt;span style="background-color: #ffffaa;"&gt;极限编程&lt;/span&gt;&lt;/span&gt;里没有严格文档管理，代码为开发团队共有，这样有利于开发人员的流动管理，因为所有的人都熟悉所有的编码。&lt;/p&gt;&lt;p&gt;11、编码标准。编码是开发团队里每个人的工作，又没有详细的文档，代码的可读性是很重要的，所以规定统一的标准和习惯是必要的，有些象编码人员的隐喻。&lt;/p&gt;&lt;p&gt;12、每周40小时工作。&lt;span class="highlightedSearchTerm"&gt;&lt;span style="background-color: #ffffaa;"&gt;极限编程&lt;/span&gt;&lt;/span&gt;认为编程是愉快的工作，不轻易加班，今天的工作今天做，小版本的设计也为了单位时间可以完成的工作安排。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;测试驱动开发&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;测试驱动开发（TDD）改变了编码的过程，并且这种改变不仅是可能的，同时也是值得去做的。开发包括三方面的活动：编写测试用例，编码并进行测试，重构代码以消除重复代码使其更简单、更&lt;a onclick="javascript:tagshow(event, '%C1%E9%BB%EE');" href="http://www.cnblogs.com/6666/admin/javascript:;" target="_blank"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;strong&gt;灵活&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;、更容易理解。&lt;/p&gt;&lt;p&gt;这个过程会频繁地重复，每次进行测试均是为了保证产品的正确性。设计、编码和测试三者之间的鸿沟将不再存在，这样可以促进你对整个环境更好地理解。因此，你的设计（和编码）将随着项目的成熟逐步得到改善而非降低。&lt;/p&gt;&lt;p&gt;使TDD更加有效的原因是单元测试自动化，而且这些自动化单元测试的工具可以从Internet上免费获得。虽然没有简化功能版的商业产品，但开发人员可以合理地使用这些高质量的软件。本文将指导你怎样获得和使用Nunit并通过C#（或者任意一种基于Microsoft .Net Framework的语言）开发实践TDD。注意到类似的工具对于C++和Java开发人员也是可用的，因为他们支持大多数语言和操作系统。这些工具与&lt;a onclick="javascript:tagshow(event, '%BC%AB%CF%DE%B1%E0%B3%CC');" href="http://www.cnblogs.com/6666/admin/javascript:;" target="_blank"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;strong&gt;极限编程&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;紧密地结合起来，扩大了TDD应用的范围。&lt;/p&gt;&lt;p&gt;为什么设计会降低性能&lt;/p&gt;&lt;p&gt;大多数传统软件开发过程是基于你在设计之初正确的设计与估计，并通过开发以形成完美的产品。这种开发方式保证了产品的统一性和之间的最小差异。然而这一过程却忽略了交流与反馈，同时也不利于生成错误信息（测试失败），并因此制定策略采取相应的措施（修复设计），而这些正是TDD所重视的。&lt;/p&gt;&lt;p&gt;为什么我们不能在开始就获得正确的设计？因为在开发时，处于项目之初的我们无法获得有关这个软件完整的知识。迭代式开发虽然也认同这一事实，并帮助你在项目开发初期识别一些重要的问题，而不是把这些问题留在后期解决。然而，迭代法无法终止开发过程，使你回到设计阶段来解决问题，哪怕这只是因为一个命名糟糕的公共类名。没有人愿意关注这些细小的问题，且不幸地，这种设计过程也禁止这种更新，因为在各个阶段不停重复的代价太高。&lt;/p&gt;&lt;p&gt;传统开发过程中的这些小问题一旦积累起来，会导致大问题的发生。你或许认为与其将时间耗费在这些对功能影响不大的细枝末节上，还不如将精力放在更重要的环节。然而，这个命名糟糕的公共类在代码中保留的时间越久，则相关的使用也会越来越多，改变起来就越来越困难。之后，团队会在编码的时候非正式地修改这些问题，很快，在计划发布整个产品时，你会做大量的工作尽量使代码和设计文档保持一致。对于这种情况来说，你之前的设计是没有价值的，因为代码本身就说明了设计。&lt;/p&gt;&lt;p&gt;测试驱动开发允许你推迟决定，直到你更好地理解了问题之所在。当你只是了解到产品开发的一些基本信息时，你不必设计出完美的体系架构。这对于传统软件开发中已经确定的理念来说，是一种挑战，从某种角度来说，甚至是违反常规的。因此我们建议你以一种开放的思想来尝试TDD，你会发现TDD的强大。&lt;/p&gt;&lt;p&gt;TDD的另一个好处是更容易掌握。你开发的一系列测试说明了代码的运行机制，这种程序自我编档的方式促进了交流。它要求你通过概览测试用例并阅读自己的代码来获得反馈，从而有利于你创建的对象和组件更趋于松散耦合。同时，TDD可以推迟你的设计决策，从而简化设计，使你能集中精力修正设计的问题。最后，它通过给出的一系列测试减轻你编码的压力，因为当测试发生中断时，它可以立即告诉你究竟发生了什么。&lt;/p&gt;&lt;p&gt;简介&lt;/p&gt;&lt;p&gt;要真正理解TDD，唯一的办法就是实践。让我们从一个简单的例子开始，这个例子并不要求任何特殊的工具。我们要写一个小程序，来帮助我们规划住宅前的一块长方形的草坪，但在设计之初，我们需要作两个测试：当长度为3，宽度为2时，计算得到的面积应该为6；同时计算其周长应该为10。&lt;/p&gt;&lt;p&gt;写下这些测试有助于我们将焦点集中到程序的一些要点。在这个例子中，似乎创建一个对象来模拟问题域是合理的，因此我们创建了一个类，取名为Quad，来代表我们要建造的长方形草坪，并在一个简单的控制台应用程序中实例化它。下面就是我们实现的步骤：&lt;br /&gt;1、启动桌面的Visual Studio，选择文件 | 新建 | 项目，选择C#项目类型中的&amp;ldquo;控制台应用程序&amp;rdquo;。为项目取名为&amp;ldquo;QuadApp&amp;rdquo;，然后点击OK。&lt;br /&gt;2、在主函数中输入下列几行代码，创建Quad实例，并通过Assert断言，当长宽各为3和2时，返回的结果应该是6。&lt;br /&gt;&amp;nbsp;static void Main(string[] args)&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Quad q = new Quad();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Diagnostics.Debug.Assert(q.Area(3,2) == 6);&lt;br /&gt;&amp;nbsp;}&lt;br /&gt;3、选择项目 | 添加类，在对话框中输入&amp;ldquo;Quad.cs&amp;rdquo;，点击&amp;ldquo;打开&amp;rdquo;以创建类。&lt;br /&gt;4、输入下列代码，创建在Main函数中用到的Quad类的成员方法Area：&lt;br /&gt;&amp;nbsp;public class Quad&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public int Area(int length, int width)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;}&lt;br /&gt;5、选择生成 | 生成QuadApp 菜单项，此时编译应该是成功的，然后当你运行该程序时，会报告错误，因为此时返回的面积值不等于6。&lt;br /&gt;6、指定Area方法的返回值为6，再重新编译程序，并运行，此时没有错误发生。&lt;br /&gt;7、改变Area方法的实现，返回值用输入参数的乘积来代替起初指定的返回值常量。再次重新编译程序，并运行测试。&lt;/p&gt;&lt;p&gt;第二个测试（计算周长为10），与前面的方法相似。首先在主函数中通过assert写测试代码，接着执行第4到第7步，只是方法名用Perimeter而不是Area。当你在第七步中试图改变设计时，你可能会得出一个结果，就是可以通过构造函数来传递长和高的值，并将其存储为对象的属性，而不是通过成员方法的参数来传递。设计改变后的代码如下：&lt;br /&gt;public class Quad&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private int m_length;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private int m_width;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Quad( int length, int width)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_length = length;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_width = width;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public int Area()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return m_length * m_width;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/p&gt;&lt;p&gt;重新编译程序，并运行之，以保证你在写代码是否因粗心而漏掉了什么。&lt;/p&gt;&lt;p&gt;我们通过一种最简单的形式完成了演示TDD工作原理的练习。下面是每一步的总结：&lt;br /&gt;1、写一个失败的测试：我们选择了一个最容易实现的测试（虽然在这个例子中所有的都很简单）来实现。接下来，我们写了个Quad类的最简单实现，以保证程序能够通过编译。然而，当我们执行程序时，调试窗口会出现assert的错误信息，因为返回的面积值不是6。&lt;br /&gt;2、修改代码以通过测试：要修改代码，首先我们做一个最简单的方法，就是直接返回常量值6。该值刚好使程序能够运行且通过测试。接着下一个测试必须使用不同的参数值，迫使我们实现正确的算法，以通过所有的测试，即使我们还没有开始下一个环节的重构。&lt;br /&gt;3、重构代码：既然在我们的程序中达到了正确的预期目的，我们应该试图去掉一些重复代码使代码更易维护，更简单，更灵活，也更易于理解。我们可以发现这种改变在运行测试时，并没有影响到程序的行为。&lt;/p&gt;&lt;p&gt;修改代码使其易于维护，要求不能修改程序可观察的行为，这个思想并不是全新的理念。然而这里重要的是通过重构，而不是一遍一遍地整理代码。重构必须是软件开发活动中一个关键的环节，通过合适的工具，并采取系统的方法，可以逐步地改善代码的质量。通过执行贯穿于产品整个生命周期的许多次小的重构，最后达致最完美的目标，从而使得软件易于维护。&lt;/p&gt;&lt;p&gt;倘若必要的反馈要求你的设计（和代码）在产品开发中得到改进，则重构是测试驱动开发中不可缺少的步骤。当然你也可以不执行TDD方式，而进行重构以去除重复代码，使其更简单、灵活、更易于理解。无论你采取什么开发方式，你都需要将重构作为一种常规的活动，以保证你的更改是有效的。&lt;/p&gt;&lt;p&gt;重构的力量在于其能够减少因为改变正在工作的代码所带来的危险。好的工具能够帮助你减少潜在的危险，而同等重要的是要采取一系列严谨的步骤和正确的结构与规则。Martin Fowler的大作《重构：改善既有代码的设计》对于重构有非常精彩的描述。他定义了一系列非常有用的重构模式，并提供许多相关的样例指导你怎样进行重构。&lt;/p&gt;&lt;p&gt;目前，Visual Studio.Net除了提供查找和替换功能外，对重构没有太多的支持。然而，相信在不远的将来MS会提供更多有力的工具，使你能完成更多复杂的工作，例如符号的重命名，在编译-生成级上更改类名，而不是在你的源文件中作替换操作。你甚至可以期待这样一天的到来&amp;mdash;&amp;mdash;当你选中一段代码后，通过Visual Studio提供的菜单，直接应用重构模式，然后继续下一步工作。你有充足的信心保证你的程序是更加易于维护的，而不会引入bugs或者会改变其可观察的行为。&lt;/p&gt;&lt;p&gt;经验总结&lt;/p&gt;&lt;p&gt;迄今为止，你应该明白一条最重要的道理就是TDD很简单。事实上，TDD能帮助你更好地理解任意一门新的语言、新的技术和组件。通过TDD，你可以决定将要采取的步伐的跨度。有经验的专家可以采取大的步伐，以避免中间环节。一旦发现开发有误，可以令过程回滚，采取更小的步伐重复前面的过程。关于TDD我们需注意下列事项：&lt;br /&gt;1、测试使代码文档化（The tests document the code）。从测试的类Quad中可以清晰地看到这点；&lt;br /&gt;2、随着测试的进行，我们可以把握进度。通过测试，可以验证每个功能是否正确，如此每个人都可以运行测试来了解过程是否如我们说期望的那样被良好的建立。&lt;br /&gt;3、测试让人对代码的修改充满信心。即使你是一个C#的新手，也可以象专家那样老练的编程，运行所有的测试确保你所做的没有违反既定的规则。&lt;br /&gt;4、类似于&amp;ldquo;将长度和宽度以参数的形式传递给面积和周长，而非在构造函数里指定&amp;rdquo;这样的错误，可以通过重构来修正。&lt;br /&gt;5、当你将TDD应用到现实世界时，你可以生成许多测试，并通过如Nunit的工具来组织它们。&lt;/p&gt;&lt;p&gt;使用Nunit使测试自动化&lt;/p&gt;&lt;p&gt;TDD可能会生成成千上万个测试。假使项目中的每一个人都在周而复始地重复&amp;ldquo;写测试，修改代码，重构&amp;rdquo;，当然有必要使你的测试工作更加有效。如Nunit这样的测试框架就是设计用来帮助你提高效率的利器。它允许你象在Visual Studio中建立项目的方式，将你的测试用例装载到NUnit中，以合理地安排各自的项目。你可以将所有测试用例以层次结构显示出来，以单用例或测试包（一组测试用例）的方式运行测试，观察执行后的结果是成功（显示绿色进度条）还是失败（显示红色进度条），同时还将显示每次失败的详细信息。&lt;/p&gt;&lt;p align="center"&gt;&lt;img style="cursor: pointer;" title="点击图片可在新窗口打开" src="http://images.cnblogs.com/cnblogs_com/wayfarer/tdd1.gif" alt="" width="400" height="233" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;图一：NUnit中的测试状态&lt;/p&gt;&lt;p&gt;另外，NUnit还提供了一些特殊的方法，使你能够在测试包开始和完成时执行初始化（initialize）和清除（clean up）被不同的测试用例所共享的&amp;ldquo;测试套件（test fixtures）（例如：长文件，&lt;a onclick="javascript:tagshow(event, '%CA%FD%BE%DD%BF%E2');" href="http://www.cnblogs.com/6666/admin/javascript:;" target="_blank"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;strong&gt;数据库&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;连接，公共链接）&amp;rdquo;。你也可以定义Setup和TearDown方法使其分别在执行测试前和完成后运行。它可以帮助你通过重新更改每个用例间的系统设置，使特定的用例从其它用例中独立出来。&lt;/p&gt;&lt;p&gt;Nunit允许你用与应用程序相同的语言和环境来写测试用例。不需要&lt;a onclick="javascript:tagshow(event, '%D1%A7%CF%B0');" href="http://www.cnblogs.com/6666/admin/javascript:;" target="_blank"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;strong&gt;学习&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;特定的测试语言，使开发测试迅速而直接。同时还有一个完整的Assert类提供特定用例失败后的详细信息。&lt;/p&gt;&lt;p&gt;最后，NUnit还可以作为控制台应用程序运行，只需要通过命令方式就可以输出结果。支持自动化创建合法的进程，举例来说，这样你就可以重建应用程序，并运行完整的测试包。同时，NUnit控制台应用程序还可以生成Xml格式的测试结果日志。&lt;/p&gt;&lt;p&gt;有着软件测试背景的人们应该能认识到这些特性的价值，但即使你不具备这些经验，也能清楚地明白它能为作为开发人员的你做出多大的贡献。不过，不管你是专家还是新手，要明白NUnit是怎样帮助你组织测试用例的，最好的办法还是实践。你可以到&lt;a href="http://www.nunit.org/" target="_blank"&gt;http://www.nunit.org/&lt;/a&gt;去下载NUnit。关于使用该软件的详细细节可以从其许可文件中获得。&lt;/p&gt;&lt;p&gt;本文使用的NUnit是2.1 beta版，你也可以去下载最新版本的MSI文件（大约1.5MB）。有了这个文件后，你可以双击它进行Windows下的安装。它可以在.Net Framework1.0和1.1版本下运行，当然你也可以参考NUnit文档获得有关系统需求的更多信息。&lt;/p&gt;&lt;p&gt;安装好后，选择&amp;ldquo;Test&amp;rdquo;的子菜单项运行你的测试包，以确保产品是否安装正确。单击了菜单项后，等待你桌面上的NUnit打开后，然后单击&amp;ldquo;Run&amp;rdquo;按钮。&lt;/p&gt;&lt;p&gt;不到一分钟的时间，treeview下的所有节点都将显示为绿色，这表明测试正常执行并通过。测试运行的数目会在状态条中显示出来，同时会显示执行测试所花的时间以及失败用例的数目。有时候你可能会得到一些显示为红色的节点，这表明测试失败，你可能需要重新安装NUnit，或者从NUnit.org站点获得建议。&lt;/p&gt;&lt;p&gt;在NUnit中使用测试用例&lt;/p&gt;&lt;p&gt;NUnit有一些附带样例，你可以使用他们其中的样例，如Money项目，来学习使用NUnit的开发流程。&lt;/p&gt;&lt;p&gt;在你的桌面上启动Visual Studio，选择文件 | 打开 | 项目 菜单，在NUnit的安装目录（Program Files\NUnit）的子目录src\samples\money下找到Money.csproj文件，单击&amp;ldquo;打开&amp;rdquo;按钮并等待Visual Studio将其加载。在解决方案资源&lt;a onclick="javascript:tagshow(event, '%B9%DC%C0%ED');" href="http://www.cnblogs.com/6666/admin/javascript:;" target="_blank"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;strong&gt;管理&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;器窗口中，查看引用文件夹中nunit.framework引用是否正确。选择Build | Build Money编译Money项目。编译应该成功通过，没有错误和警告。&lt;/p&gt;&lt;p&gt;在桌面上启动NUnit。Treeview中应该是空的&amp;mdash;&amp;mdash;如果不是，请选择File | Close菜单关闭所有已存在的项目。然后在File菜单中选择Open菜单项打开Money.csproj文件，就像你在Visual Studio中打开该文件一样。现在Treeview中应该包含测试样例的集合。&lt;/p&gt;&lt;p&gt;选择Treeview（文件Money.csproj）中的根节点，单击NUnit右侧的&amp;ldquo;Run&amp;rdquo;按钮。测试用例的所有包均被执行，并恰好获得一个失败的测试&amp;mdash;&amp;mdash;MoneyBag Equals。&lt;/p&gt;&lt;p&gt;选择MoneyBag Equals测试用例（红色的叶结点），并定位到该文件的出错行，此时NUnit的右侧下方会显示相关信息，如图二：&lt;/p&gt;&lt;p align="center"&gt;&lt;img style="cursor: pointer;" title="点击图片可在新窗口打开" src="http://images.cnblogs.com/cnblogs_com/wayfarer/tdd2.gif" alt="" width="400" height="194" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;图二：NUnit错误跟踪&lt;/p&gt;&lt;p&gt;切换到Visual Studio，打开该文件并定位到出错行。将该行注释掉（在行开始处插入//）并重新编译（生成 | 重新生成Money），此时编译将完全通过，没有错误和警告。&lt;/p&gt;&lt;p&gt;现在再切换到NUnit，注意到Treeview的所有节点均为灰色，这表明你更新后的程序还没有运行。选择Treeview的根节点，单击&amp;ldquo;Run&amp;rdquo;按钮。你可以看到所有的测试均通过且没有错误。&lt;/p&gt;&lt;p&gt;以上就是NUnit的全部工作方法。现在可以为你自己的项目创建测试用例了。&lt;/p&gt;&lt;p&gt;测试用例&lt;/p&gt;&lt;p&gt;测试用例定义了一系列输入，同时也可以定义一系列输出，以验证被执行的某些程序特性没有引入任何Bug。测试可能会失败是因为产品里有Bug，但也可能是测试代码自身有Bug&amp;mdash;&amp;mdash;可以称为false negative。相似的，测试能通过也有可能恰好是因为测试中有Bug，而非你的产品准确无误，我们称为false positive。[译注：意思是测试中有Bug，而产品中也有Bug,巧的是这两处的Bug恰好负负得正，抵消了Bug所带来的影响，反而使测试通过。]好的测试应该避免出现false negatives，且绝对不能包含false positives。另外，好的测试包不仅要测试正确的场景，也要测试错误的用例。&lt;/p&gt;&lt;p&gt;测试对象和其环境在测试用例被执行前总是保持相同的状态，因此一旦有必要就需重复执行并给出恒定的结果。当测试失败时，定位到错误的地方就能获得相关的信息。通过这些信息就能推断出问题能否被纠正。这就是为什么要求你对每个测试用例都要验证其合法性的原因所在。&lt;/p&gt;&lt;p&gt;现在我们为Quad例子写一些测试用例来实践上述的原理。在Visual Studio和NUnit中打开Quad项目，和起初打开Money项目的方法一样&amp;mdash;&amp;mdash;选择文件 | 打开菜单，并定位到QuadApp.csproj。选择项目 | 添加引用，找到文件nunit.framework.dll（在NUnit安装目录的bin子目录下），单击确定，添加引用nunit.framework。&lt;/p&gt;&lt;p&gt;在Visual Studio中创建QuadTest类：选择项目 | 添加类，输入名字QuadTest.cs，然后单击&amp;ldquo;打开&amp;rdquo;。输入下列代码到QuadTest中：&lt;br /&gt;using System;&lt;br /&gt;using NUnit.Framework;&lt;/p&gt;&lt;p&gt;namespace QuadApp&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [TestFixture]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public class QuadTest&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [TestFixtureSetUp]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void DoTestSuiteSetUp()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("TestSuiteSetUp");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [TestFixtureTearDown]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void DoTestSuiteTearDown()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("TestSuiteTearDown");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [TearDown]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void DoTestCaseTearDown()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("TestCaseTearDown");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [SetUp]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void DoTestCaseSetup()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("TestCaseSetup");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Test]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void Area()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Quad q = new Quad();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Assert.IsTrue( q.Area(2, 3) == 6);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("Area");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Test]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void Perimeter()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Quad q = new Quad();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Assert.IsTrue( q.Perimeter(2, 3) == 10);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("Perimeter");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/p&gt;&lt;p&gt;编译后，在NUnit中运行测试。单击NUnit右侧的Console.Out标签，可以查看执行的顺序。&lt;/p&gt;&lt;p&gt;现在你可以看到，不同的Setup和TearDown方法是怎样允许你控制测试环境，从而保证你的测试用例能根据需要而重复执行并给出恒定的结果。这些方法将帮助你确保运行一个测试用例而不会影响到另外的用例（测试用例独立性test case isolation）。测试独立性的最佳证明就是具备以任意顺序运行测试用例的能力。试着改变一下测试用例的顺序，以确认他们是否具有独立性。&lt;/p&gt;&lt;p&gt;测试套件和测试包&lt;/p&gt;&lt;p&gt;一个测试套件是一个或多个测试用例共享的一个对象，这些测试用例都与测试对象的初始化或提供相应资源有关。在NUnit的术语中，测试套件是一个具备特性（attribute）[TestFixture]的类，并提供下列方法：&lt;br /&gt;1、[Test]方法形成不同的测试用例。这些测试样例应该是测试的核心操作，并且与其它测试无关。&lt;br /&gt;2、[SetUp]和[TearDown]方法提供测试用例间的环境设置。它们分别在测试开始前和结束后执行。&lt;br /&gt;3、[TestFixtureSetUp]和[TestFixtureTearDown]方法要求对象被测试用例共享。它们分别在测试套件开始和结束时执行。&lt;/p&gt;&lt;p&gt;你希望运行测试的任意对象都可以在[TestFixture]类（被所有测试用例共享）里创建实例变量，也可以在方法（对于单个测试用例中是私有的）中创建局部变量，这就是为什么要描述为测试套件（test fixture）的原因。然而，你也可以将NUnit的[TestFixture]看作是组织测试包的一种方法，它将测试包组织为每个类，形成treeview的每一个分支。&lt;/p&gt;&lt;p&gt;既然你已经能够为自己的项目创建测试包，并且通过NUnit来运行它们，那么就让我们开始TDD之旅吧。当然，首先还要看看我们在开发工作中可能会遇到的问题。&lt;/p&gt;&lt;p&gt;在现实世界中使用TDD&lt;/p&gt;&lt;p&gt;在使用TDD时，首先要考虑的是：既然商业产品是设计用来组织你的程序的，那么产品代码就应该很容易从代码中分离出来，以用来测试。在产品开发期间，你可以运行你的测试程序，而为了发布产品，你仍然能够轻易地将其从代码中移除。&lt;/p&gt;&lt;p&gt;你可能会遇到的另一个难题就是测试GUI应用程序的困难，因为GUI应用程序是被鼠标和键盘输入而驱动的。举例来说，你应该怎样写测试程序来激活用户点击dropdown list控件的事件呢？如果用户选择的是国名列表，那么又该怎样验证选中的内容呢？&lt;/p&gt;&lt;p&gt;解决这些问题的方案就是：将代码根据编译、测试和部署分类为不同的组件。举例来说，我们不应创建一个作为主应用程序的Quad类，生成相同的可执行文件；而应该允许这个类能够被包含在一个单独的库文件（.dll）中。[译注：实质就是将Quad以类库的形式创建，而非应用程序。] 这样我们就可以开发单独的测试程序和域程序作为各自的可执行文件（.exe），并共享同一个包含Quad类的公共库文件（.dll）。注意，如果你仅仅创建了库，NUnit和你的测试包会被当作接口使用，而不是所需的单独的业务外观（separate harness）。&lt;/p&gt;&lt;p&gt;记住这个原则：&amp;ldquo;使主程序尽量简单，而将复杂的业务作为类放到库中&amp;rdquo;。它将帮助你解决测试GUI应用程序的问题。TDD的其中一个原则就是你不能测试第三方代码，因此你没有必要测试GUI框架类，虽然当框架相对简单的时候，有时会用来测试接口。这意味着你可以捕捉类里的用户事件，因为你知道这个类是怎么工作的；然后再将其传递到类里进行处理。此外，你也可以将测试程序和域程序从单独的可执行文件中分离出来，而该执行文件则共享了你竭尽心力开发的公共库。&lt;/p&gt;&lt;p&gt;让我们看看怎样实际运用TDD来开发包含有Combobox控件的简单窗体应用程序。&lt;/p&gt;&lt;p&gt;开发一个测试和创建库&lt;/p&gt;&lt;p&gt;在Visual Studio里选择文件|新建|项目菜单新建一个控制台应用程序，取名为CountryTest。然后如第一个例子那样，为项目添加nunit.framework引用。选择项目|添加类菜单，输入名字CountryBoxTest.cs，点击&amp;ldquo;打开&amp;rdquo;按钮，创建类CountryBoxTest。然后在CountryBoxTest类中输入下列代码：&lt;br /&gt;[TestFixture]&lt;br /&gt;public class CountryBoxTest&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Test]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void CheckContent()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CountryLib.CountryList list = new CountryLib.CountryList();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Assert.AreEqual("UK", list.GetCountry(1));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Assert.AreEqual("US", list.GetCountry(2));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Assert.AreEqual("CH", list.GetCountry(3));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Assert.AreEqual(null, list.GetCountry(4));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/p&gt;&lt;p&gt;生成项目。编译失败，因为CountryList类不存在。&lt;/p&gt;&lt;p&gt;使用Visual Strudio，选择文件|新建|项目（添加到业已存在的解决方案中），创建一个新的类库，命名为CountryLib。选择项目|添加类输入名字CountryList.cs，单击&amp;ldquo;打开&amp;rdquo;，创建新类CountryList。然后将下面的代码输入到CountryList中，并编译。&lt;br /&gt;public class CountryList&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String GetCountry(int No)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/p&gt;&lt;p&gt;首先我们为项目添加引用CountryLib.dll，然后重新编译控制台应用程序CountryTest。此时项目运行正常，因为我们已经创建了CountryList类。&lt;/p&gt;&lt;p&gt;在NUnit中打开CountryTest.csproj，并运行测试。显示失败，因为CountryList.GetCountry方法返回null。切换到Visual Studio，在类CountryList中修改GetCountry方法，使其返回测试所需要的值&amp;mdash;&amp;mdash;仅仅添加一些字符串常量，如下所示：&lt;br /&gt;public class CountryList&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; string ne = "UK";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; string two = "US";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; string three = "CH";&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string GetCountry(int No)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( No == 1 )&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return one;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( No == 2 )&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return two;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( No == 3 )&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return three;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/p&gt;&lt;p&gt;这段代码主要是为了程序正常进行，而写的最简单的例子。重新编译CountryList类库，并切换到NUnit，然后运行测试&amp;mdash;&amp;mdash;运行成功。&lt;/p&gt;&lt;p&gt;对CountryList进行你认为必要的重构，每次重构后都进行测试，以检查是否出现错误。你可能认为在ArrayList中存储字符串可以使代码更简单，容易，更利于理解，同时避免重复，但是你也可以选择其它解决方案。&lt;/p&gt;&lt;p&gt;创建GUI&lt;/p&gt;&lt;p&gt;使用Visual Studio选择文件|新建|项目（添加到现有的解决方案中）创建新的Windows应用程序，并为项目添加引用CountryList.dll。接下来，在工具栏中拖动combobox控件到主窗体上。然后将下面的代码输入到CountryApp中，并编译应用程序。&lt;br /&gt;private void InitializeComponent()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CountryLib.CountryList list = new CountryLib.CountryList();&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; String country;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int index = 1;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while ((country = list.GetCountry(index++)) != null)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.comboBox1.Items.Add(country);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;br /&gt;}&lt;/p&gt;&lt;p&gt;现在你的项目已经有了基本的结构，它允许你采用TDD技术通过进一步开发CountryList类库来创建GUI应用程序。考虑一下CountryList怎样才能处理用户接口事件（鼠标单击，键盘），并通过这个方法使其能够被CountryTest测试，并被CountryApp使用。对于CountryList，你可能会有比本文的示例更好的解决方案，不过本示例试图说明：测试驱动开发能够改善设计，即使设计已经成熟。之前你不必一定要拿出完美的设计方案，这对于开发人员来说，无疑是一个福音。&lt;/p&gt;&lt;p&gt;结论&lt;/p&gt;&lt;p&gt;大多数设计都是从上而下创建，并基于可观察的特性进行分类，促进对问题的理解和解决。换句话说，我们试图创建层次结构的对象，它模型化了问题域。相反，TDD则是从下而上，通过对一些小问题，依次实施一系列简单的解决方案，最后演进为设计。&lt;/p&gt;&lt;p&gt;重构确保了设计集中于一个好的解决方案而不是逐渐脱离设计。如果你认为这是设计之根本，你就对了。TDD将在这十年潜在地改变软件开发的方法，就像过去十年面向对象技术所做到的那样。&lt;/p&gt;&lt;p&gt;NUnit提示：当我们使用Visual Studio打开NUnit附带的预先建好的测试样例时，你可能会发现引用nunit.framework.dll显示未找到，那么请打开解决方案资源管理器窗口的引用文件夹。此时你需要删除已经存在的引用（选择文件，右击&amp;ldquo;移除&amp;rdquo;），然后再次添加（选择引用，右击&amp;ldquo;添加引用&amp;rdquo;，浏览并定位到该文件，单击&amp;ldquo;确定&amp;rdquo;）。nunit.framework.dll文件可以在NUnit安装文件夹的bin子目录下找到。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/6666/aggbug/1620215.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/6666/archive/2012/04/20/1620215.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/6666/archive/2012/04/20/1572551.html</id><title type="text">我是如何学习设计模式的五：代理模式和装饰模式的关系-引出装饰模式-下一节讲解装饰模式</title><summary type="text">代理模式和装饰模式的关系装饰模式: 动态的对一个对象进行功能上的扩展，也可以对其子类进行功能上的扩展。代理也是对真实对象功能扩展,让功能类可以专注与自己的功能,至于怎么被试用的,即辅助工作完全由代理来处理</summary><published>2012-04-20T04:24:00Z</published><updated>2012-04-20T04:24:00Z</updated><author><name>王书奎(网名:无忌)</name><uri>http://www.cnblogs.com/6666/</uri></author><link rel="alternate" href="http://www.cnblogs.com/6666/archive/2012/04/20/1572551.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/6666/archive/2012/04/20/1572551.html"/><content type="html">&lt;p&gt;&lt;strong&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Cambria; mso-hansi-font-family: Cambria;"&gt;代理模式和装饰模式的关系&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;装饰模式&lt;/span&gt;&lt;span lang="EN-US"&gt;: &lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;动态的对一个对象进行功能上的扩展，也可以对其子类进行功能上的扩展。&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;代理也是对真实对象功能扩展&lt;/span&gt;&lt;span lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;让功能类可以专注与自己的功能&lt;/span&gt;&lt;span lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;至于怎么被试用的&lt;/span&gt;&lt;span lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;即辅助工作完全由代理来处理&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/6666/aggbug/1572551.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/6666/archive/2012/04/20/1572551.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/6666/archive/2012/04/20/1572556.html</id><title type="text">我是如何学习设计模式的九：轻松一下，学习一个简单的：单例模式（最简单，但是也是最有用的）</title><summary type="text">我故意把单例模式放在中间 讲解 ，因为其原理简单，但是作用是最大的，让大家轻松点，轻松点的目的是为下一个超级重要的模式做准备：工厂模式，本人将把世界有关工厂模式的一切易学的资料吃透，整理给大家阅读，学习！单例模式理论1C#单例模式的三种写法原文：http://blog.sina.com.cn/s/blog_4b8589b70100c5mt.html第一种最简单，但没有考虑线程安全，在多线程时可能会出问题，不过俺从没看过出错的现象，表鄙视我……public class Singleton{ private static Singleton _instance = null; private Si</summary><published>2012-04-20T04:23:00Z</published><updated>2012-04-20T04:23:00Z</updated><author><name>王书奎(网名:无忌)</name><uri>http://www.cnblogs.com/6666/</uri></author><link rel="alternate" href="http://www.cnblogs.com/6666/archive/2012/04/20/1572556.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/6666/archive/2012/04/20/1572556.html"/><content type="html">&lt;p&gt;&lt;strong&gt;&lt;span style="color: red; font-size: 24pt;"&gt;我故意把单例模式放在中间 讲解 ，因为其原理简单，但是作用是最大的，让大家轻松点，轻松点的目的是为下一个超级重要的模式做准备：工厂模式，本人将把世界有关工厂模式的一切易学的资料吃透，整理给大家阅读，学习！&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;单例模式&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Cambria; mso-hansi-font-family: Cambria;"&gt;理论&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span lang="EN-US"&gt;1&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;C#&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;单例模式的三种写法&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;原文：&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;http://blog.sina.com.cn/s/blog_4b8589b70100c5mt.html&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;第一种最简单，但没有考虑线程安全，在多线程时可能会出问题，不过俺从没看过出错的现象，表鄙视我&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&amp;hellip;&amp;hellip;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;public class Singleton&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;private static Singleton _instance = null;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;private Singleton(){}&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;public static Singleton CreateInstance()&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;if(_instance == null)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;_instance = new Singleton();&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;return _instance;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;第二种考虑了线程安全，不过有点烦，但绝对是正规写法，经典的一叉&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;public class Singleton&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;private volatile static Singleton _instance = null;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;private static readonly object lockHelper = new object();&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;private Singleton(){}&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;public static Singleton CreateInstance()&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;if(_instance == null)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;lock(lockHelper)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;if(_instance == null)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;_instance = new Singleton();&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;return _instance;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;第三种可能是&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;C#&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;这样的高级语言特有的，实在懒得出奇&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;public class Singleton&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;private Singleton(){}&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;public static readonly Singleton instance = new Singleton();&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;}&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;哦，&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;shit&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;！&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span lang="EN-US"&gt;2&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;创建一个单体模式类，必须符合三个条件：&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;1&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;：私有构造函数（防止其他对象创建实例）；&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;2&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;：一个单体类型的私有变量；&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;3&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;：静态全局获取接口&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;下面我写一个类，为了看是不是单体，就加了一个计数器，如果是同一个类，那么这个类的计数每次调用以后就应该自动加一，而不是重新建对象归零：&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;.NET c# &lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;单体模式&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;using System; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;using System.Threading; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;public class Singleton{ &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;private int ObjCount=0; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;private Singleton(){ &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;Console.WriteLine("&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;创建对象&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;"); &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;} &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;private static Singleton objInstance = null; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;public static Singleton getInstance() { &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;if (objInstance==null) objInstance=new Singleton(); &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;return objInstance; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;} &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;public void ShowCount(){ &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;ObjCount++; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;Console.WriteLine("&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;单个对象被调用了&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;{0}&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;次&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;",ObjCount); &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;} &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;}; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;然后我们来测试一下：&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;public class ConsoleTest{ &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;public static void Main(string[] args){ &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;Console.WriteLine("&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;开始执行单体模式&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;"); &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;for(int i=0;i&amp;lt;5;i++){ &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;Singleton.getInstance().ShowCount(); &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;} &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;Console.ReadLine(); &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;} &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;}; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;我在这个&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;Main&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;里面执行了&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;5&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;次，看看输出的结果：&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;开始执行单体模式&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;创建对象&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;单个对象被调用了&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;1&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;次&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;单个对象被调用了&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;2&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;次&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;单个对象被调用了&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;3&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;次&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;单个对象被调用了&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;4&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;次&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;单个对象被调用了&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;5&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;次&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;在这里可以看出，每次都是使用的同一个对象，实现了单体。&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;为了测试在多线程下面是否是单体，下面我写了一个多线程测试的：&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;class ApartmentTest &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;{ &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;public static void RunMoreThread() &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;{ &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;Thread newThread = new Thread(new ThreadStart(ThreadSingleMethod)); &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;newThread.SetApartmentState(ApartmentState.MTA); &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;Console.WriteLine("ThreadState: {0}, ApartmentState: {1},ManagedThreadId:{2}",&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;newThread.ThreadState, newThread.GetApartmentState(),newThread.ManagedThreadId&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;); &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;newThread.Start(); &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;} &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;public static void ThreadSingleMethod() { &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;Singleton.getInstance().ShowCount(); &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;} &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;}; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;然后每次&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;for&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;循环执行&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;ApartmentTest.RunMoreThread(); &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;再看看输出的结果：开始执行单体模式&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;ThreadState: Unstarted, ApartmentState: MTA,ManagedThreadId:3 &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;创建对象&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;单个对象被调用了&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;1&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;次&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;ThreadState: Unstarted, ApartmentState: MTA,ManagedThreadId:4 &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;单个对象被调用了&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;2&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;次&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;ThreadState: Unstarted, ApartmentState: MTA,ManagedThreadId:5 &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;单个对象被调用了&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;3&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;次&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;ThreadState: Unstarted, ApartmentState: MTA,ManagedThreadId:6 &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;单个对象被调用了&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;4&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;次&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;ThreadState: Unstarted, ApartmentState: MTA,ManagedThreadId:7 &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;单个对象被调用了&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;5&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;次&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;根据&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;ManagedThreadId&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;，可以看出不同的线路访问达到了单体，&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;OK&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;！&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;c#&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;的单体模式介绍完毕；&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;本文来自&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;: &lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;脚本之家&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;(www.jb51.net) &lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;详细出处参考：&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;http://www.jb51.net/article/13117.htm&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span lang="EN-US"&gt;3&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;单例模式有以下的特点：&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;1 :&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;单例类只可有一个实例。&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;2 :&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;单例类必须自己创建自己这惟一的实例。&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;3 :&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;单例类必须给所有其他对象提供这一实例。&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;一般创建单例我们常用的有两种方式&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;:&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;1:&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;静态变量法&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;也叫惰性实例化&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;2:&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;双重锁定&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;静态变量法非常好理解&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,.net&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;的运行机制决定了静态变量可以形成单件&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;静态变量是一个存储在内存中的变量&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;它的机制可以保证同一时间只会存在一个变量&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;为此我们非常容易的可以写出这样的程序&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;:&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;1:&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;Code&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;非线程安全的单件&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;#region &lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;非线程安全的单件&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/**//// &amp;lt;SUMMARY&amp;gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/// &lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;定义自身的静态变量实例&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;默认值为&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;null&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/// &amp;lt;/SUMMARY&amp;gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;private static Singleton instance = null;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/**//// &amp;lt;SUMMARY&amp;gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/// &lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;私有构造函数&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/// &lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;之所有不是&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;类型的&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;因为是为了避免发生&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;new Singleton()&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;产生更多的实例&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/// &amp;lt;/SUMMARY&amp;gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;private Singleton()&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{ }&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/**//// &amp;lt;SUMMARY&amp;gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/// &lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;生成实例方法&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/// &amp;lt;/SUMMARY&amp;gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/// &amp;lt;RETURNS&amp;gt;&amp;lt;/RETURNS&amp;gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;public static Singleton getInstance()&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;//&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;如果实例没有被初始化则实例化变量&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;if (instance == null)&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;instance = new Singleton();&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;return instance;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;#endregion&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;这种对于单线程运行的程序来说是绝对没有问题的&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;例如运行一个&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;asp.net&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;程序&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;一般网站都基本用不到多线程&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;所有上面的例子就足够满足&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;但是如果是多线程呢&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;?&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;如果同时有两个线开始判断&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;instance==null,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;如果此时都为真&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;则创建了两上实例&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;这样就违背了单件的原则&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;为此可进行下修改&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;:&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;2:&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;Code&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;线程安全的单件&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;静态变量方法&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;)#region &lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;线程安全的单件&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;静态变量方法&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;) &lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/**//// &amp;lt;SUMMARY&amp;gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/// &lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;定义自身的静态变量实例&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;在程序运行时初始化变量&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/// instance&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;被申请成&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;readonly,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;也是为了避免给实例重新赋值&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/// &amp;lt;/SUMMARY&amp;gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;private static readonly Singleton instance = new Singleton();&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/**//// &amp;lt;SUMMARY&amp;gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/// &lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;私有构造函数&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/// &lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;之所有不是&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;类型的&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;因为是为了避免发生&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;new Singleton()&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;产生更多的实例&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/// &amp;lt;/SUMMARY&amp;gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;private Singleton()&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{ }&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/**//// &amp;lt;SUMMARY&amp;gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/// &lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;生成实例方法&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/// &amp;lt;/SUMMARY&amp;gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/// &amp;lt;RETURNS&amp;gt;&amp;lt;/RETURNS&amp;gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;public static Singleton getInstance()&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;return instance;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#endregion&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;这种方法在程序初始化时对类实例进行了初始化&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;利用静态变量以及私有构造方法完成了单件的生成&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;之所以称这种方式是惰性实例化&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;是因为&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;无论你是否调用这个实例&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;它都会被创建&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;双重锁定&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;:&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;我们可以对方法&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;1&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;进行下改造&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;它的缺点就是非线程安全&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;既然有缺点当然就要改正了&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;3:&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;Code&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;线程安全的单件&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;双重锁定方法&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;1:&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;线程安全但性能较差&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;)#region &lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;线程安全的单件&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;双重锁定方法&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;1:&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;线程安全但性能较差&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;)&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/**//// &amp;lt;SUMMARY&amp;gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/// &lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;定义自身的静态变量实例&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;默认值为&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;null&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/// &amp;lt;/SUMMARY&amp;gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;private static Singleton instance = null;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/**//// &amp;lt;SUMMARY&amp;gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/// &lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;创建一个&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;object&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;对象&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;同样它也是静态只读&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;用来实现锁定功能&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/// &amp;lt;/SUMMARY&amp;gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;private static readonly object olock = new object();&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/**//// &amp;lt;SUMMARY&amp;gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/// &lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;私有构造函数&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/// &lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;之所有不是&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;类型的&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;因为是为了避免发生&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;new Singleton()&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;产生更多的实例&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/// &amp;lt;/SUMMARY&amp;gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;private Singleton()&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{ }&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/**//// &amp;lt;SUMMARY&amp;gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/// &lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;生成实例方法&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/// &amp;lt;/SUMMARY&amp;gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/// &amp;lt;RETURNS&amp;gt;&amp;lt;/RETURNS&amp;gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;public static Singleton getInstance()&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;{&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;//&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;取得实例的时候先锁定对象&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;然后判定是否存在&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;lock (olock)&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;//&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;如果实例没有被初始化则实例化变量&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;if (instance == null)&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;instance = new Singleton();&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;return instance;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#endregion&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;这个方法是线程式安全的单件模式&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;但是它每次生成单件的时候都要给对象加锁&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;这样也是一种性能消耗&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;上面说了有缺点就要改&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;这个方法当然也不例外&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;:&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;4:&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;Code&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;线程安全的单件&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;双重锁定方法&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;2:&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;线程安全而且性能优越&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;)#region &lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;线程安全的单件&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;双重锁定方法&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;2:&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;线程安全而且性能优越&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;)&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/**//// &amp;lt;SUMMARY&amp;gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/// &lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;定义自身的静态变量实例&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;默认值为&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;null&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/// instance&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;被申请成&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;readonly,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;也是为了避免给实例重新赋值&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/// &amp;lt;/SUMMARY&amp;gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;private static Singleton instance = null;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/**//// &amp;lt;SUMMARY&amp;gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/// &lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;创建一个&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;object&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;对象&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;同样它也是静态只读&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;用来实现锁定功能&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/// &amp;lt;/SUMMARY&amp;gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;private static readonly object olock = new object();&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/**//// &amp;lt;SUMMARY&amp;gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/// &lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;私有构造函数&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/// &lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;之所有不是&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;类型的&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;因为是为了避免发生&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;new Singleton()&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;产生更多的实例&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/// &amp;lt;/SUMMARY&amp;gt; &lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;private Singleton()&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{ }&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/**//// &amp;lt;SUMMARY&amp;gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/// &lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;生成实例方法&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/// &amp;lt;/SUMMARY&amp;gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/// &amp;lt;RETURNS&amp;gt;&amp;lt;/RETURNS&amp;gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;public static Singleton getInstance()&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;if (instance == null)&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;{&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;//&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;取得实例的时候先锁定对象&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;然后判定是否存在&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;lock (olock)&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;//&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;如果实例没有被初始化则实例化变量&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;if (instance == null)&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;instance = new Singleton();&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;return instance;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#endregion&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;这个方法在生成的实例的时候&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;先判断是否为空&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;如果不为空则不对对象进行加锁操作直接返回对象实例&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;同时这种双重锁定对比静态方法来看&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;有一个优势就是它的实例化延迟到类中&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;只有调用此类的实例时它才会生成实例&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;上面都是常规的单件模式&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;其实并不是所有的情况都如上面一样&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;在抽象工厂的应用中经常结合单件模式来应用&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;使得工厂实例是唯一的&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;在上一篇&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;用抽象工厂模式武装新闻组件&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;中&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;我用上了抽象工厂&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;当时在抽象工厂类实例的生成上并没有结合单件模式&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;所在在这想改造一下&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;我的程序思路是这样的&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;有一个抽象工厂基类&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;AbstractFactoryClass,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;它包含一个&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;public static AbstractFactoryClass GetInstance()&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;方法&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;作用是生成它的派生类的实例&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;而这个生成过程是通过反射来完成的&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;这两个派生类分别是&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;:AbstractFactory_China,AbstractFactory_US.&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;这种情况下要想直接返回&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;AbstractFactoryClass&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;的实例是不可能的&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;因为它是抽象类&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;不能直接&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;new&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;AbstractFactoryClass().&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;先看下这三个类的类图&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;:&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;代码如下&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;:&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;Code&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;//&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;把抽象类设置成静态变量&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;避免多次加载程序集&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;private static AbstractFactoryClass instance=null ;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/**//// &amp;lt;SUMMARY&amp;gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/// &lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;创建一个&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;object&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;对象&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;同样它也是静态只读&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;用来实现锁定功能&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;/// &amp;lt;/SUMMARY&amp;gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;private static readonly object olock = new object();&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;public static AbstractFactoryClass GetInstance()&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;//&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;应用双重锁定来产生工厂单件对象&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;if (instance == null)&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;lock (olock)&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;if (instance == null)&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;//&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;取得当前工厂名称&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;string factoryName =&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;ConfigurationSettings.AppSettings["factoryName"].ToString();&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;if (factoryName != "")&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;instance =&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;(AbstractFactoryClass)Assembly.Load("AbstractFactoryCompent").CreateInstance(factoryName);&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;else&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;instance = null;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;}&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;return instance;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;上面的代码因为基类是抽象类所有没有上面常规程序中的私有构造函数&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;这种生成抽象工厂类派生类实例的案例并不适用于静态方法构造单件的情况&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;因为你不能直接通过&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;new&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;的方式来初始化类实例&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;应用场景&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;在&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;.NET&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;框架的重要组成部分&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;Remoting&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;中，远程对象（&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;Remote Object&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;）有两种激活方式：服务器端激活方式和客户端激活方式。采用服务器端激活方式的对象又分为两种类型：&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;Singleton&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;对象和&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;SingleCall&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;对象。&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;Singleton &lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;对象是这样的对象：无论该对象有多少个客户端调用，它总是只有一个实例，由这个实例来处理所有的客户端请求。相反地，若将远程对象声明为&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt; SingleCall&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;，则系统会为每次客户端方法的调用创建一个新对象，即使这些方法调用来自同一个客户端，也即，对象只在方法调用持续期间存在，一旦方法调用结束，该对象就会被销毁。显而易见，这里的&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;Singleton&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;对象就是设计模式&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;Singleton&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;思想在&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;.NET&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;中的应用&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;　我们现在要做一个网络游戏的服务端程序，需要考虑怎么样才能承载大量的用户。在做&lt;/span&gt;&lt;span style="font-size: 10.0pt;" lang="EN-US"&gt;WEB&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;程序的时候有各种负载均衡的方案，不管是通过硬件实现还是软件实现，基本的思想就是有一个统一的入口，然后由它来分配用户到各个服务器上去。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;泛型写的单例例子&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;Singleton&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;using System;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;using System.Collections.Generic;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;using System.Text;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;namespace Pattern.Singleton&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;/**//// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;/// &lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;泛型实现单例模式&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;/// &amp;lt;typeparam name="T"&amp;gt;&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;需要实现单例的类&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;&amp;lt;/typeparam&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;public class Singleton&amp;lt;T&amp;gt; where T : new()&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;/**//// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;/// &lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;返回类的实例&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;public static T Instance&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;get { return SingletonCreator.instance; }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;class SingletonCreator&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;internal static readonly T instance = new T();&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 2.8pt; margin-right: 0cm; margin-bottom: 5.65pt; margin-left: 0cm; text-align: left; mso-layout-grid-align: none; text-autospace: none;" align="left"&gt;&lt;span style="font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-font-kerning: 0pt;"&gt;&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt;" lang="EN-US"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/6666/aggbug/1572556.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/6666/archive/2012/04/20/1572556.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/6666/archive/2012/04/20/1572553.html</id><title type="text">我是如何学习设计模式的七:中介者模式—和command模式,观察者模式有一定关系</title><summary type="text">中介者模式定义中介者作为唯一知道其他类中方法细节的一个类，在类发生变化时通知中介者，中介者在将这些变化传递给其他需要通知的类中介者作为唯一知道其他类中方法细节的一个类，在类发生变化时通知中介者，中介者在将这些变化传递给其他需要通知的类中介者模式的效果：1 当一个类的动作要受另一个类的状态影响时，中介者模式可以防止这些类变得混乱2 使用中介者很容易修改一个程序的行为。3 可以添加新的控件或类，除了改变中介者外，不用改动任何部分。4 中介者解决了每个command对象要对用户接口中的其他对象和方法了解太多的问题5 中介者变成了一个万能类，知道太多其他部分程序的信息，这会使他难以修改和维护。6 每个</summary><published>2012-04-20T03:57:00Z</published><updated>2012-04-20T03:57:00Z</updated><author><name>王书奎(网名:无忌)</name><uri>http://www.cnblogs.com/6666/</uri></author><link rel="alternate" href="http://www.cnblogs.com/6666/archive/2012/04/20/1572553.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/6666/archive/2012/04/20/1572553.html"/><content type="html">&lt;p&gt;&lt;strong&gt;&lt;span style="font-family: 宋体;"&gt;中介者模式定义&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-size: 12pt; line-height: 150%; font-family: 宋体;"&gt;中介者作为唯一知道其他类中方法细节的一个类，在类发生变化时通知中介者，中介者在将这些变化传递给其他需要通知的类&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-size: 12pt; line-height: 150%; font-family: 宋体;"&gt;中介者作为唯一知道其他类中方法细节的一个类，在类发生变化时通知中介者，中介者在将这些变化传递给其他需要通知的类&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-size: 12pt; line-height: 150%; font-family: 宋体;"&gt;中介者模式的效果：&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-size: 12pt; line-height: 150%; font-family: 宋体;"&gt;1 &lt;/span&gt;&lt;span style="font-size: 12pt; line-height: 150%; font-family: 宋体;"&gt;当一个类的动作要受另一个类的状态影响时，中介者模式可以防止这些类变得混乱&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-size: 12pt; line-height: 150%; font-family: 宋体;"&gt;2 &lt;/span&gt;&lt;span style="font-size: 12pt; line-height: 150%; font-family: 宋体;"&gt;使用中介者很容易修改一个程序的行为。&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-size: 12pt; line-height: 150%; font-family: 宋体;"&gt;3 &lt;/span&gt;&lt;span style="font-size: 12pt; line-height: 150%; font-family: 宋体;"&gt;可以添加新的控件或类，除了改变中介者外，不用改动任何部分。&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-size: 12pt; line-height: 150%; font-family: 宋体;"&gt;4 &lt;/span&gt;&lt;span style="font-size: 12pt; line-height: 150%; font-family: 宋体;"&gt;中介者解决了每个command对象要对用户接口中的其他对象和方法了解太多的问题&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-size: 12pt; line-height: 150%; font-family: 宋体;"&gt;5 &lt;/span&gt;&lt;span style="font-size: 12pt; line-height: 150%; font-family: 宋体;"&gt;中介者变成了一个万能类，知道太多其他部分程序的信息，这会使他难以修改和维护。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;6 &lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;每个中介者都是一个指定的类，要拥有的每个同事要调用方法，并知道每个同事有哪些可用的方法，这使得在不同项目中重用中介者变得很困难。&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;Mediator&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;中介者模式定义&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;:&lt;br /&gt;&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;用一个中介对象来封装一系列关于对象交互行为&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="color: black; font-family: 宋体;"&gt;为何使用&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;Mediator?&lt;br /&gt;&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;各个对象之间的交互操作非常多&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;;&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;每个对象的行为操作都依赖彼此对方&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;,&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;修改一个对象的行为&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;,&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;同时会涉及到修改很多其他对象的行为&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;,&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;如果使用&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;Mediator&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;模式&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;,&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;可以使各个对象间的耦合松散&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;,&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;只需关心和&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt; Mediator&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;的关系&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;,&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;使多对多的关系变成了一对多的关系&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;,&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;可以降低系统的复杂性&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;,&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;提高可修改扩展性&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="color: black; font-family: 宋体;"&gt;如何使用&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;?&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="color: black; font-family: 宋体;"&gt;首先&lt;/span&gt; &lt;span style="color: black; font-family: 宋体;"&gt;有一个接口&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;,&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;用来定义成员对象之间的交互联系方式&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;:&lt;/span&gt;&lt;/p&gt;&lt;table border="0" cellspacing="3" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="background: #cccccc; width: 334.95pt; border: #f0f0f0; padding: 2.25pt;" width="447"&gt;&lt;p align="center"&gt;&lt;span style="font-size: 9pt; color: black; font-family: 'ˎ̥','serif';"&gt;public interface Mediator { }&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p align="left"&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;Meiator&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;具体实现&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;,&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;真正实现交互操作的内容&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;:&lt;/span&gt;&lt;/p&gt;&lt;table border="0" cellspacing="3" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="background: #cccccc; width: 398.6pt; border: #f0f0f0; padding: 2.25pt;" width="531"&gt;&lt;p align="center"&gt;&lt;span style="font-size: 9pt; color: black; font-family: 'ˎ̥','serif';"&gt;public class ConcreteMediator implements Mediator {&lt;/span&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;span style="font-size: 9pt; color: black; font-family: 宋体;"&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: black; font-family: 'ˎ̥','serif';"&gt; //&lt;/span&gt;&lt;span style="font-size: 9pt; color: black; font-family: 宋体;"&gt;假设当前有两个成员&lt;/span&gt;&lt;span style="font-size: 9pt; color: black; font-family: 'ˎ̥','serif';"&gt;.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: black; font-family: 宋体;"&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: black; font-family: 'ˎ̥','serif';"&gt; private ConcreteColleague1 colleague1 = new ConcreteColleague1(); &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: black; font-family: 宋体;"&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: black; font-family: 'ˎ̥','serif';"&gt; private ConcreteColleague2 colleague2 = new ConcreteColleague2(); &lt;/span&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;span style="font-size: 9pt; color: black; font-family: 宋体;"&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: black; font-family: 'ˎ̥','serif';"&gt; ... &lt;/span&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;span style="font-size: 9pt; color: black; font-family: 'ˎ̥','serif';"&gt;} &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p align="left"&gt;&lt;span style="color: black; font-family: 宋体;"&gt;再看看另外一个参与者&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;:&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;成员&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;,&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;因为是交互行为&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;,&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;都需要双方提供一些共同接口&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;,&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;这种要求在&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;Visitor Observer&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;等模式中都是相同的&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;table border="0" cellspacing="3" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="background: #cccccc; width: 334.95pt; border: #f0f0f0; padding: 2.25pt;" width="447"&gt;&lt;p align="center"&gt;&lt;span style="font-size: 9pt; color: black; font-family: 'ˎ̥','serif';"&gt;public class Colleague {&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: black; font-family: 宋体;"&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: black; font-family: 'ˎ̥','serif';"&gt; private Mediator mediator;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: black; font-family: 宋体;"&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: black; font-family: 'ˎ̥','serif';"&gt; public Mediator getMediator() { &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: black; font-family: 宋体;"&gt;&lt;/span&gt; &lt;span style="font-size: 9pt; color: black; font-family: 宋体;"&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: black; font-family: 'ˎ̥','serif';"&gt; return mediator;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: black; font-family: 宋体;"&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: black; font-family: 'ˎ̥','serif';"&gt; }&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: black; font-family: 宋体;"&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: black; font-family: 'ˎ̥','serif';"&gt; public void setMediator( Mediator mediator ) { &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: black; font-family: 宋体;"&gt;&lt;/span&gt; &lt;span style="font-size: 9pt; color: black; font-family: 宋体;"&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: black; font-family: 'ˎ̥','serif';"&gt; this.mediator = mediator; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: black; font-family: 宋体;"&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: black; font-family: 'ˎ̥','serif';"&gt; }&lt;br /&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;span style="font-size: 9pt; color: black; font-family: 'ˎ̥','serif';"&gt;public class ConcreteColleague1 { }&lt;/span&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;span style="font-size: 9pt; color: black; font-family: 'ˎ̥','serif';"&gt;public class ConcreteColleague2 { }&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p align="left"&gt;&lt;span style="color: black; font-family: 宋体;"&gt;每个成员都必须知道&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;Mediator,&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;并且和&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt; Mediator&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;联系&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;,&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;而不是和其他成员联系&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="color: black; font-family: 宋体;"&gt;至此&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;,Mediator&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;模式框架完成&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;,&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;可以发现&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;Mediator&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;模式规定不是很多&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;,&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;大体框架也比较简单&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;,&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;但实际使用起来就非常灵活&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;Mediator&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;模式在事件驱动类应用中比较多&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;,&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;例如界面设计&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;GUI.;&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;聊天&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;,&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;消息传递等&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;,&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;在聊天应用中&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;,&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;需要有一个&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;MessageMediator,&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;专门负责&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;request/reponse&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;之间任务的调节&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;MVC&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;是&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;J2EE&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;的一个基本模式&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;,View Controller&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;是一种&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;Mediator,&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;它是&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;Jsp&lt;/span&gt;&lt;span style="color: black; font-family: 宋体;"&gt;和服务器上应用程序间的&lt;/span&gt;&lt;span style="color: black; font-family: 'ˎ̥','serif';"&gt;Mediator.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 9pt; color: #323432; font-family: 宋体;"&gt;将一些对象的相关功能集合在一格类中。乍看之下和单件模式没什么不同。深入看看模式的定义，才发现中介者模式的集合含义是不同的：单件模式是将相关的功能集合在某一类中，供给许多类使用，但这些类之间是没什么关系的。&lt;/span&gt;&lt;span style="font-size: 9pt; color: #323432; font-family: 'Verdana','sans-serif';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #323432; font-family: 宋体;"&gt;　&lt;/span&gt;&lt;span style="font-size: 9pt; color: #323432; font-family: 'Verdana','sans-serif';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #323432; font-family: 宋体;"&gt;中介者模式是将需要交互的类的交互功能合并在某个类中，这个类充当中介。也可以看成调度。这样做是为了降低类之间的耦合，中介者类也能充当一个交互的层或某些适配功能。&lt;/span&gt;&lt;span style="font-size: 9pt; color: #323432; font-family: 'Verdana','sans-serif';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #323432; font-family: 宋体;"&gt;　&lt;/span&gt;&lt;span style="font-size: 9pt; color: #323432; font-family: 'Verdana','sans-serif';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #323432; font-family: 宋体;"&gt;比如，我们有一个流程驱动，其中的某一个状态需要提交到下一操作。这时，是在状态类中派生使用下一个状态&lt;/span&gt;&lt;span style="font-size: 9pt; color: #323432; font-family: 'Verdana','sans-serif';"&gt;/&lt;/span&gt;&lt;span style="font-size: 9pt; color: #323432; font-family: 宋体;"&gt;操作类？还是提交给流程驱动类，由他来进行提交的处理呢？因为可能状态提交会带来某些额外的操作，或者流程是用户运行时决定的，这时当前状态是不知道下一状态是什么，就无法进行有效的编码。&lt;/span&gt;&lt;span style="font-size: 9pt; color: #323432; font-family: 'Verdana','sans-serif';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #323432; font-family: 宋体;"&gt;　&lt;/span&gt;&lt;span style="font-size: 9pt; color: #323432; font-family: 'Verdana','sans-serif';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #323432; font-family: 宋体;"&gt;或者，在某一个&lt;/span&gt;&lt;span style="font-size: 9pt; color: #323432; font-family: 'Verdana','sans-serif';"&gt;GUI&lt;/span&gt;&lt;span style="font-size: 9pt; color: #323432; font-family: 宋体;"&gt;中，某些成员（某个按钮，列表等）的变化将会影响到许多其他的成员，这时使用观察者模式将会比较复杂（可能是&lt;/span&gt;&lt;span style="font-size: 9pt; color: #323432; font-family: 'Verdana','sans-serif';"&gt;N*M&lt;/span&gt;&lt;span style="font-size: 9pt; color: #323432; font-family: 宋体;"&gt;），编码成本会比较高，又没有复用的可能，就可以考虑使用中介者模式了。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-family: 宋体;"&gt;中介模式的组成部分&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体;"&gt;中介者模式的组成部分&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;吧。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 宋体;"&gt;&lt;/span&gt;1) &lt;span style="font-family: 宋体;"&gt;抽象中介者（&lt;/span&gt;Mediator&lt;span style="font-family: 宋体;"&gt;）角色：抽象中介者角色定义统一的接口用于各同事角色之间的通信。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 宋体;"&gt;&lt;/span&gt;2) &lt;span style="font-family: 宋体;"&gt;具体中介者（&lt;/span&gt;Concrete Mediator&lt;span style="font-family: 宋体;"&gt;）角色：具体中介者角色通过协调各同事角色实现协作行为。为此它要知道并引用各个同事角色。&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 宋体;"&gt;&lt;/span&gt;3) &lt;span style="font-family: 宋体;"&gt;同事（&lt;/span&gt;Colleague&lt;span style="font-family: 宋体;"&gt;）角色：每一个同事角色都知道对应的具体中介者角色，而且与其他的同事角色通信的时候，一定要通过中介者角色协作。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-family: 宋体;"&gt;通俗的例子&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;1&lt;span style="font-family: 宋体;"&gt;婚姻介绍所&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Mediator&lt;span style="font-family: 宋体;"&gt;模式的概念&lt;/span&gt;Mediator&lt;span style="font-family: 宋体;"&gt;模式是行为模式之一，&lt;/span&gt;Mediator&lt;span style="font-family: 宋体;"&gt;模式定义一个对象来封装对象的交互行为。从而降低对象间的耦合程度。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体;"&gt;在&lt;/span&gt;Mediator&lt;span style="font-family: 宋体;"&gt;模式中，类之间的交互行为被统一放在&lt;/span&gt;Mediator&lt;span style="font-family: 宋体;"&gt;的对象中，对象通过&lt;/span&gt;Mediator&lt;span style="font-family: 宋体;"&gt;对象同其他对象交互，&lt;/span&gt;Mediator&lt;span style="font-family: 宋体;"&gt;对象起着控制器的作用。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Mediator&lt;span style="font-family: 宋体;"&gt;模式的应用场景与利点当多个类之间相互依存，互相调用，关系过于复杂时，可以考虑使用&lt;/span&gt;Mediator&lt;span style="font-family: 宋体;"&gt;模式来简化它们之间的关系。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体;"&gt;使用&lt;/span&gt;Mediator&lt;span style="font-family: 宋体;"&gt;模式时的优点&lt;/span&gt;&lt;/p&gt;&lt;p&gt;1&lt;span style="font-family: 宋体;"&gt;，将系统按功能分割成更小的对象，符合类的最小设计原则&lt;/span&gt;&lt;/p&gt;&lt;p&gt;2&lt;span style="font-family: 宋体;"&gt;，对关联对象的集中控制&lt;/span&gt;&lt;/p&gt;&lt;p&gt;3&lt;span style="font-family: 宋体;"&gt;，减小类的耦合程度，明确类之间的相互关系：当类之间的关系过于复杂时，其中任何一个类的修改都会影响到其他类，不符合类的设计的开闭原则&lt;/span&gt; &lt;span style="font-family: 宋体;"&gt;，而&lt;/span&gt;Mediator&lt;span style="font-family: 宋体;"&gt;模式将原来相互依存的多对多的类之间的关系简化为&lt;/span&gt;Mediator&lt;span style="font-family: 宋体;"&gt;控制类与其他关联类的一对多的关系，当其中一个类修改时，可以对其他关联类不产生影响（即使有修改，也集中在&lt;/span&gt;Mediator&lt;span style="font-family: 宋体;"&gt;控制类）。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;4&lt;span style="font-family: 宋体;"&gt;，有利于提高类的重用性&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Mediator&lt;span style="font-family: 宋体;"&gt;模式的应用范例下面，我们使用&lt;/span&gt;Mediator&lt;span style="font-family: 宋体;"&gt;模式模拟男孩女孩找对象的行为：在&lt;/span&gt;Boy&lt;span style="font-family: 宋体;"&gt;类中，需要调用&lt;/span&gt;Girl&lt;span style="font-family: 宋体;"&gt;类的方法；相反，在&lt;/span&gt;Girl&lt;span style="font-family: 宋体;"&gt;类中，也需要调用&lt;/span&gt;Boy&lt;span style="font-family: 宋体;"&gt;类的方法。所以我们采用&lt;/span&gt;Mediator&lt;span style="font-family: 宋体;"&gt;模式来实现这个过程。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体;"&gt;文件一览：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Client&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;测试类&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Mediator&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mediator&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;中介者类，这里省略了抽象类&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Person&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;关联类（&lt;/span&gt;Boy, Girl&lt;span style="font-family: 宋体;"&gt;）的抽象类。关联类之间并不一定需要共享一个父类，这里为了方便，为他们抽象出一个&lt;/span&gt;Person&lt;span style="font-family: 宋体;"&gt;类&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Boy&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;关联类之&lt;/span&gt;Boy&lt;span style="font-family: 宋体;"&gt;，跟&lt;/span&gt;Girl&lt;span style="font-family: 宋体;"&gt;类相关联&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Girl&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;关联类之&lt;/span&gt;Girl&lt;span style="font-family: 宋体;"&gt;，跟&lt;/span&gt;Boy&lt;span style="font-family: 宋体;"&gt;类相关联&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体;"&gt;代码：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;public class Client {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /**&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Test Mediator Pattern&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void main(String[] args) {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;婚姻中介所开张了&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mediator mediator = new Mediator();&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;一个名为&lt;/span&gt;Zhangshan&lt;span style="font-family: 宋体;"&gt;的男孩，条件为&lt;/span&gt;80&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Boy zhangshan = new Boy(mediator, "Zhangshan", 80);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Girl lili = new Girl(mediator, "Lili", 80);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;如果条件符合，则&lt;/span&gt;partner&lt;span style="font-family: 宋体;"&gt;成立&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zhangshan.findPartner(lili);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;一个名为&lt;/span&gt;lanlan&lt;span style="font-family: 宋体;"&gt;的女孩，条件为&lt;/span&gt;90&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Girl lanlan = new Girl(mediator, "lanlan", 90);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lanlan.findPartner(zhangshan);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;/**&lt;/p&gt;&lt;p&gt;* &lt;span style="font-family: 宋体;"&gt;关联类（&lt;/span&gt;Boy, Girl&lt;span style="font-family: 宋体;"&gt;）的抽象类&lt;/span&gt;&lt;/p&gt;&lt;p&gt;* &lt;span style="font-family: 宋体;"&gt;关联类之间并不一定需要共享一个父类，这里为了方便，为他们抽象出一个&lt;/span&gt;Person&lt;span style="font-family: 宋体;"&gt;类&lt;/span&gt;&lt;/p&gt;&lt;p&gt;*/&lt;/p&gt;&lt;p&gt;abstract class Person {&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;姓名&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; String name;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;条件&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int condition;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;中介者（不管男孩还是女孩，都需要知道中介者，通过中介者去找对象）&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mediator mediator;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Person(Mediator mediator, String name, int condition) {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.mediator = mediator;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.name = name;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.condition = condition;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public abstract boolean findPartner(Person person);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public int getCondition() {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return condition;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void setCondition(int condition) {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.condition = condition;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String getName() {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return name;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }-&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/6666/aggbug/1572553.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/6666/archive/2012/04/20/1572553.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/6666/archive/2012/04/20/1572498.html</id><title type="text">个人第一次踏进软件开发-辛苦，失望中寻找希望，这是我以前的日志</title><summary type="text">某一天坚持服从原则，还应注意对部领导的决议、指示不能因自己有不同意见而不执行。正确的态度是一方面积极向部领导反映自己的意见，另一方面在部领导没有采纳自己的意见修改决议指示之前，仍要按原指示决议执行，在执行中积极采取措施，把可能造成的损失减少到最低程度。当然，执行的结果证明部领导指示是错误的，责任由部领导承担。搞好工作，力争显著的政绩，这是大家的共同愿望，作为部领导，总是希望下属出色地完成各项任务，成为自己的得力助手和骨干。因此，积极努力地做好工作，尽职尽责，为部领导分忧解难，是组工干部处理好与部领导关系的一条重要原则。第二天：人的一生 短短数十载, 虽然我比他们晚熟很多,但是我感觉我的人生太</summary><published>2012-04-20T03:22:00Z</published><updated>2012-04-20T03:22:00Z</updated><author><name>王书奎(网名:无忌)</name><uri>http://www.cnblogs.com/6666/</uri></author><link rel="alternate" href="http://www.cnblogs.com/6666/archive/2012/04/20/1572498.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/6666/archive/2012/04/20/1572498.html"/><content type="html">&lt;div&gt;&lt;span style="color: red;"&gt;&lt;strong&gt;某一天&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;坚持服从原则，还应注意对部领导的决议、指示不能因自己有不同意见而不执行。正确的态度是一方面积极向部领导反映自己的意见，另一方面在部领导没有采纳自己的意见修改决议指示之前，仍要按原指示决议执行，在执行中积极采取措施，把可能造成的损失减少到最低程度。当然，执行的结果证明部领导指示是错误的，责任由部领导承担。&amp;nbsp;&lt;/div&gt;&lt;div&gt;　搞好工作，力争显著的政绩，这是大家的共同愿望，作为部领导，总是希望下属出色地完成各项任务，成为自己的得力助手和骨干。因此，积极努力地做好工作，尽职尽责，为部领导分忧解难，是组工干部处理好与部领导关系的一条重要原则。&lt;/div&gt;&lt;div&gt;第二天：&lt;/div&gt;&lt;div&gt;&lt;div&gt;人的一生 短短数十载, 虽然我比他们晚熟很多,但是我感觉我的人生太短暂了.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;想起过去的往事,今晚默然很伤感,虽然多少次告诉自己 ,可是感觉一点用都没有.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;从今天开始 ,只做自己,开心过好每一天,不要表现给谁看;记住，自己说过的话：一年之内不要上QQ,不要上校内网,不要玩任何游戏。&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;如果成熟就意味着失去快乐,我愿意忍住一切,忍住寂寞,我要长大,我要实现霸业!&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;好好学习工作,一定要成长起来,一定要成为一个男人.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;第三天&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;div&gt;今天 晚上 和自己的同事 &amp;nbsp;一起 吃了一次饭.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;我挺开心的.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;晚上回到家 , 好想 打开 QQ 打开 校内网 ,写一写 自己的心情.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;不过 我没有打开 ,我一定要牢记自己这次自己说出来的话.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;校内, qq 绝对不打开 ,努力去控制自己 ,多学习,少玩,一心一意工作!&lt;/div&gt;&lt;div&gt;要记住:&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;工作第一,&lt;/div&gt;&lt;div&gt;服从领导第一,&lt;/div&gt;&lt;div&gt;提高自己的技能第一,&lt;/div&gt;&lt;div&gt;勤奋第一,&lt;/div&gt;&lt;div&gt;时间第一,时间第一,时间第一,时间第一,时间第一,时间第一,记住自己曾经说过的话,记住:用终生来偿还曾经浪费的时光&lt;/div&gt;&lt;div&gt;友谊第一,&lt;/div&gt;&lt;div&gt;诚信第一,&lt;/div&gt;&lt;div&gt;做人第一,&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;自控能力第一,&lt;/div&gt;&lt;div&gt;不忘 过去发生的事情,以及从中学习到的经验 教训,&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;时时告诉自己:我不是一个小孩子了,成熟但不乏幽默!&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;表面精明,"坏" 但切记要胸怀 正义之心!&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;自己目前有太多的不会,编程要靠大量的试验 去 提高自己的经验.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;虚心学习,请教.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;不做最聪明的人,只做最勤奋的人!&lt;/div&gt;&lt;div&gt;珍惜时间&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;当然 MSN 因为工作需要~~~&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;1踏踏实实 老老实实做人,&lt;/div&gt;&lt;div&gt;2年轻人 有时候就会冲动 ,切忌 在自己冲到的时候或者 突发 想做什么事情的时候 ,要控制自己,三思而后行.&lt;/div&gt;&lt;div&gt;3早上人人都喜欢睡懒觉,当自己睡意很浓的时候,一定要告诉自己,立即起床!&lt;/div&gt;&lt;div&gt;4晚上好好在公司学习,尽量少做些和工作 学习 无关的事情!&lt;/div&gt;&lt;div&gt;5珍惜拥有的工作,同事,朋友,领导......好好工作,不为功名,钱财,利禄,而尔虞我诈,珍惜拥有,用勤奋,时间,奋斗去对待...&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;实现自己的人生价值才是硬道理....&lt;/div&gt;&lt;div&gt;6 真心对待每一个人,不管发生什么事情,不管为了什么, 都不要牺牲任何人的利益,不要使得身边的人因为你而受到伤害!&lt;/div&gt;&lt;div&gt;7有时候 说话 总是 不准,或者 让人听了 不是自己想表达的意思 ,有时候还可能造成误会,这个时候一定要停一下,好好组织语句&lt;/div&gt;&lt;div&gt;不要慌张,不要一着急 就为自己的话 圆话,要随机应变 心平气和 去好好的解释.&amp;nbsp;&lt;/div&gt;&lt;div&gt;8 多沉默 ,少说话,多做事,多学习,能不说就不说,不要在工作的时间和同事开玩笑,浪费时间,一心一意工作!&lt;/div&gt;&lt;div&gt;9自己有时候总是控制不好 而 贪玩 或者 一玩 就好几天, 搞的自己 天天感觉浪费了这么的时间.所以切忌当自己玩的念头很大的时候,&lt;/div&gt;&lt;div&gt;一定要控制自己,有时候很大很大的时候,要好好的好好的三思,切忌 不可 再学以前 浪费这么时间去玩游戏.&lt;/div&gt;&lt;div&gt;10 有些事情 控制不好就不要去接触,比如游戏 &amp;nbsp;只要是游戏 就不要去接触 ,一丝一毫都不要接触,不管它被人描述的有多好玩,&lt;/div&gt;&lt;div&gt;看别人玩的有多开心,不管自己事业到什么地步,都不要接触游戏,赌博,烟....没遇到事情,或者新鲜事物之前,要分析一下,这个对自己&lt;/div&gt;&lt;div&gt;工作 学习 有没有帮助 .学会分析.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;尤其要警惕 社会上的新鲜事物,或者自己新知道的事物,最近发生的事情,都要静下来想想: 怎么样处理这个新鲜事物才能更好&lt;/div&gt;&lt;div&gt;的促进自己工作 学习 .&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;如果新鲜事情 好, 但是对自己的学习 帮助不是太大,亦不接触.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;不管遇到好的,坏的,大的,小的都要先想一想,因为刚开始接触的东西不知道他的好坏而 错误的判断,冷静冷静冷静....&lt;/div&gt;&lt;div&gt;多观察,,,,,,&lt;/div&gt;&lt;div&gt;11好的休息 好的身体 才能在工作中 发挥 创新 灵感.....所以 一定要好好休息 ,生物钟要注意,不可以凭借一时冲动 ,兴头&lt;/div&gt;&lt;div&gt;而通宵达旦 搞的第二天 精神不好,影响工作,影响工作必定会影响心情&lt;/div&gt;&lt;div&gt;12对于技术,能不问的就不问,自己钻研,请教别人要谦虚 要有三顾茅庐之心.&lt;/div&gt;&lt;div&gt;13 记住 自己 曾经的经历,不要刻意追求太高,不要好高骛远,不要心高气傲&lt;/div&gt;&lt;div&gt;14切忌 不要表现出任何不成熟的动作,不管是别人夸你,贬你,骂你,不管在什么场合,不管别人喜欢的是什么,都要成熟稳重.&lt;/div&gt;&lt;div&gt;即使你认为 你应该表现的......切忌 &amp;nbsp;不要.时刻成熟稳重,不管什么情况下.&lt;/div&gt;&lt;div&gt;18请教别人问题 要提前组织好,不问傻瓜的问题 不问可以查到的问题,要虚心一点,&lt;/div&gt;&lt;div&gt;知足而乐&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;19 好人 .以 后不要说自己是一个好人, 好人 这两个 我还配不上,好人对于我来说 意味很多,&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;我不是好人,但是我会学习那些好人,我想做一个好人!&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;第四天&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;div&gt;今天又说错话了,学会承担错误 不管是自己的 还是别人的.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;不要怕别人说你 不好 &amp;nbsp;.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;讲清楚就可以了&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;第五天 ：&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;div&gt;今天又说错了一句话.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;不要紧张.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;不要夸大化,实事求是.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;第六天&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;div&gt;我是K2华北地区的销售,欢迎您和我联系.&lt;/div&gt;&lt;div&gt;Mobile:13520537854&lt;/div&gt;&lt;div&gt;Mail:song@k2.com&lt;/div&gt;&lt;div&gt;本贴来自ZDNetChina中文社区 http://bbs.zdnet.com.cn ,本贴地址：&lt;a href="http://forums.cweek.com.cn/viewthread.php?tid=212696"&gt;http://forums.cweek.com.cn/viewthread.php?tid=212696&lt;/a&gt;&lt;/div&gt;&lt;div&gt;jiweiyu@hongzhi-tech.com&lt;/div&gt;&lt;div&gt;&amp;nbsp;陆俊杰 &amp;nbsp; &amp;nbsp; &amp;nbsp;:&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;想寻觅一份在上海的工作&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;3年asp.net工作经验&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;13801790374&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;superpopredboy@gmail.com&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;k2学习的一个群 &amp;nbsp;5326881&lt;/div&gt;&lt;div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;第八天 ：明天晚上的计划&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;div&gt;以后要早点睡觉 不要熬夜 不然影响白天的效率 切忌&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;明天开始制定自己的生活计划 学习计划 &amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;jquery &amp;nbsp;学习 &amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;json学习&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;并尽可能多的用在自己的项目上&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;gridview 等各种控件的实战学习&lt;/div&gt;&lt;div&gt;dataview学习&amp;nbsp;&lt;/div&gt;&lt;div&gt;页面传值用在自己的程序中&lt;/div&gt;&lt;div&gt;jquery json 用在自己开发的程序中&lt;/div&gt;&lt;div&gt;在自己开发的程序中多用线程 &amp;nbsp;正则表达式 &amp;nbsp;多用ajax技术 &amp;nbsp;这个当做主流技术&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;主要奋斗方向 &amp;nbsp;网页 bs架构 &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;试着在页面用设计模式 一边学习一边用&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;晚上学习 白天把晚上学习到的东西用在项目的开发中&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;多用存储过程 触发器 事务 &amp;nbsp;索引 多写 sql 语句,&amp;nbsp;&lt;/div&gt;&lt;div&gt;sql函数用在项目的开发中&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;如果是小型的数据库 可以用xml去写 学会去处理xml &amp;nbsp;可以试着用在自己的项目中&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;开发 同步 &amp;nbsp;异步线程的程序 &amp;nbsp;加锁 解锁&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;看看自己编写的程序中有没有读者 写者的问题 &amp;nbsp;临界资源的问题 都可以用线程做&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;学习模板 &amp;nbsp;主题 的应用 应用在自己开发的项目中 &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;多开发一些小的用户控件 &amp;nbsp;一些公用的东西写成用户控件&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;要学会用JavaScript来布局 &amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;每天不要学习太多 &amp;nbsp;而是要思考 如何更好的用在我们开发的项目中 比如线程&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;可以考虑那些地方可以用到线程 &amp;nbsp;每天力求学到的东西 可以在实践开发中用到&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;第九天&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;div&gt;永远记住,要时刻准备着,锻炼自己,磨练自己,勤奋学习,向成功迈进!&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;第十天 ：自己需要改进的地方&lt;/div&gt;&lt;div&gt;&lt;div&gt;事情没有做好 就积极去承担 ,想方法去解决,don't say anything ,keep quiet, just do until completing it!&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;要让自己积极一点,不管别人说你什么,都不要因为别人的话而着急 ,放松点,越着急越做不好!&lt;/div&gt;&lt;div&gt;一定要学会 多问,不明白就问,不要一直稀里糊涂的做事情,所以一定要问明白,不要在乎别人说你笨蛋,说你水平不高而怕问,勇敢的承认自己就是笨蛋,不要在错误的方向下钻研.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;不管将来有多么成功 都不要因为一时的成功 而骄傲,而乱说话.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;比如继伟布置的添加 try catch 语句 既然不知道在那里加 就问,不要怕别人说你笨蛋而不好意思去问.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;永远记住 这是一个团队的项目,程序出错 项目经理问 &amp;nbsp;是谁改错的,不要说 &amp;nbsp;这个一定不是我 ,这样会给人的感觉 你团队意识不强.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;不要看不起别人,别人有值得你学习的地方就不要看不起别人,不管是谁 ,多说谢谢两字!&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;以后不要解释任何东西 ,即使别人误会也好,错了就是错了,勇敢的说出来,少说话,默默地去改正.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;自己的毛病: 就是说话的时候有时候 因为心急 或者别人误会你,或者自己没有做好一件事情 &amp;nbsp;会因为心急而说出一些让人认为是不好听的话,虽然你不是这样想的.但是,别人怎么知道呢,谁叫你说话的水平这么差的.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;任何时候说话之前要心平气和,在自己写错程序遭到上级领导批评的时候 尤其要注意 不要为自己辩护,不要怕被批评,不要总是认为自己委屈,要多想想自己那里需要改进 让自己做到 无一丝漏洞.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;不要自大 要承认自己是个笨蛋,不要和别人争论,不要推卸责任,大家一起做的程序,有错就不要怪谁,不要为了推卸责任而说一些丧气或者推卸责任的话.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;项目经理指出的错误需要修改的地方 用笔记下来,不要为自己辩解 即使别人冤枉你, 修改好就可以&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;一定要学会 承受 被别人 冤枉 &amp;nbsp;而依旧 心平气和 &amp;nbsp;不要去恨 &amp;nbsp;不要泄气 ,不说丧气话,不说难,不叹气,最重要的是 闭嘴.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;以后只说 三句话 : &amp;nbsp; 项目经理 指出你的错误 .你的做法: &amp;nbsp;拿起笔 记下来. &amp;nbsp;然后 只说 一句话: 恩 .记下来了 我会好好改正的.不管有多少错误 都不要 害怕去承担 勇敢去看待自己写错的 不管是因为业务不清楚错 还是 因为粗心 还是因为什么 都不要去计较 &amp;nbsp; &amp;nbsp;不要给自己理由 &amp;nbsp; 要好好去修改 .&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;如果别人要是又写错的代码 不要说别人的不对,不要说 &amp;nbsp;这个我帮你改了 不要说 &amp;nbsp;这个是不是你做的, 能自己帮助改正确的 自己该 不能再请教 &amp;nbsp;要当成是自己的工作 是自己不会 该 去请教&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; 加入 项目经理问你 做好了吗 &amp;nbsp;你得问答 &amp;nbsp; 没有,还没有改好 &amp;nbsp;或者 恩 好了 ,&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;其他任何话都不要说 &amp;nbsp; 不要辩解 不管别人说什么 都沉默 &amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;以后从基础的开始学起,多做 ,以实践为主.&lt;/div&gt;&lt;div&gt;&amp;nbsp;每天都要有计划!&lt;/div&gt;&lt;div&gt;以后不管自己学会什么 都要把自己当成笨蛋,别人夸你的时候, 你要说 谢谢 ,然后说 &amp;nbsp;, 不,我还很多东西要学,或者 我比较笨吧 &amp;nbsp;谢谢大家指教&lt;/div&gt;&lt;div&gt;问过之后 要说谢谢, &amp;nbsp;谢谢不要离口&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;总之 说话前要想 &amp;nbsp; 以精简为主~~~&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;别人说你不好 要对别人说 &amp;nbsp;谢谢指出我的缺点 &amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;以后要积极去约束自己,从点点滴滴做起 , 努力做好自己,&lt;/div&gt;&lt;div&gt;培养自己,时刻注意自己 从小事情做起.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/6666/aggbug/1572498.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/6666/archive/2012/04/20/1572498.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/6666/archive/2012/04/20/1572552.html</id><title type="text">我是如何学习设计模式的六：装饰模式</title><summary type="text">模式四:装饰模式理论 装饰模式（Decorator）也叫包装器模式（Wrapper）。以“装饰”的含义生动形象地描绘了“动态地给一个对象添加一些额外的职责”的意图。GOF在《设计模式》一书中给出的定义为：动态地给一个对象添加一些额外的职责。装饰模式充分利用了继承和聚合的优势，创造出无与论比的设计美学。就增加功能来说，Decorator模式相比生成子类更为灵活。从面向对象的角度来说，我们要为一个对象添加一新的职责完全可以利用继承机制来实现，但是这样的设计会导致一个问题，“过度地使用继承来扩展对象的功能”由于继承为类型引入的静态特质，使得这种扩展方式缺乏灵活性；并且随着字类的增多(扩展功能的增.</summary><published>2012-04-20T03:10:00Z</published><updated>2012-04-20T03:10:00Z</updated><author><name>王书奎(网名:无忌)</name><uri>http://www.cnblogs.com/6666/</uri></author><link rel="alternate" href="http://www.cnblogs.com/6666/archive/2012/04/20/1572552.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/6666/archive/2012/04/20/1572552.html"/><content type="html">&lt;p&gt;&lt;strong&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Cambria; mso-hansi-font-family: Cambria;"&gt;模式四&lt;/span&gt;&lt;span lang="EN-US"&gt;:&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Cambria; mso-hansi-font-family: Cambria;"&gt;装饰模式&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;理论&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="color: #6600ff;"&gt;装饰&lt;/span&gt;&lt;/span&gt;模式（&lt;/span&gt;&lt;span lang="EN-US"&gt;Decorator&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;）也叫包装器模式（&lt;/span&gt;&lt;span lang="EN-US"&gt;Wrapper&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;）。以&lt;/span&gt;&lt;span lang="EN-US"&gt;&amp;ldquo;&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;装饰&lt;/span&gt;&lt;span lang="EN-US"&gt;&amp;rdquo;&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;的含义生动形象地描绘了&lt;/span&gt;&lt;span lang="EN-US"&gt;&amp;ldquo;&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;动态地给一个对象添加一些额外的职责&lt;/span&gt;&lt;span lang="EN-US"&gt;&amp;rdquo;&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;的意图。&lt;/span&gt;&lt;span lang="EN-US"&gt;GOF&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;在《设计模式》一书中给出的定义为：动态地给一个对象添加一些额外的职责。装饰模式充分利用了继承和聚合的&lt;span style="text-decoration: underline;"&gt;&lt;span style="color: #6600ff;"&gt;优势&lt;/span&gt;&lt;/span&gt;，创造出无与论比的设计美学。就增加功能来说，&lt;/span&gt;&lt;span lang="EN-US"&gt;Decorator&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;模式相比生成子类更为灵活。&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;　从面向对象的角度来说，我们要为一个对象添加一新的职责完全可以利用继承机制来实现，但是这样的设计会导致一个问题，&lt;/span&gt;&lt;span lang="EN-US"&gt;&amp;ldquo;&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;过度地使用继承来扩展对象的功能&lt;/span&gt;&lt;span lang="EN-US"&gt;&amp;rdquo;&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;由于继承为类型引入的静态特质，使得这种扩展方式缺乏灵活性；并且随着字类的增多&lt;/span&gt;&lt;span lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;扩展功能的增多&lt;/span&gt;&lt;span lang="EN-US"&gt;)&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;，各种子类的组合&lt;/span&gt;&lt;span lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;扩展功能的组合&lt;/span&gt;&lt;span lang="EN-US"&gt;)&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;会导致更多子类的膨胀，也就是所谓的类爆炸。如何使&lt;/span&gt;&lt;span lang="EN-US"&gt;&amp;ldquo;&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;对象功能的扩展&lt;/span&gt;&lt;span lang="EN-US"&gt;&amp;rdquo;&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;能够根据需要来动态地实现同时又避免&lt;/span&gt;&lt;span lang="EN-US"&gt;&amp;ldquo;&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;扩展功能的增加&lt;/span&gt;&lt;span lang="EN-US"&gt;&amp;rdquo;&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;带来的类爆炸问题？从而使得任何&lt;/span&gt;&lt;span lang="EN-US"&gt;&amp;ldquo;&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;功能扩展变化&lt;/span&gt;&lt;span lang="EN-US"&gt;&amp;rdquo;&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;所导致的影响将为最低？&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span style="font-size: 12.0pt; mso-bidi-font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; color: red;"&gt;装饰模式是在不必改变原类文件和使用继承的情况下，动态的扩展一个对象的功能。它是通过创建一个包装对象，也就是装饰来包裹真实的对象。&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;装饰模式的特点；&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;（&lt;/span&gt;&lt;span lang="EN-US"&gt;1&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;）&lt;/span&gt; &lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;装饰对象和真实对象有相同的接口。这样客户端对象就可以以和真实对象相同的方式和装饰对象交互。&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;（&lt;/span&gt;&lt;span lang="EN-US"&gt;2&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;）&lt;/span&gt; &lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;装饰对象包含一个真实对象的索引（&lt;/span&gt;&lt;span lang="EN-US"&gt;reference&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;）&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;（&lt;/span&gt;&lt;span lang="EN-US"&gt;3&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;）&lt;/span&gt; &lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;装饰对象接受所有的来自客户端的请求。它把这些请求转发给真实的对象。&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;（&lt;/span&gt;&lt;span lang="EN-US"&gt;4&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;）&lt;/span&gt; &lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;装饰对象可以在转发这些请求以前或以后增加一些附加功能。这样就确保了在运行时，不用修改给定对象的结构就可以在外部增加附加的功能。在面向对象的设计中，通常是通过继承来实现对给定类的功能扩展。&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;下表格列举了装饰模式和继承的不同：&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;装饰模式&lt;/span&gt;&lt;span lang="EN-US"&gt; VS &lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;继承&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;装饰模式&lt;/span&gt; &lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;继承&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;用来扩展特定对象的功能&lt;/span&gt; &lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;用来扩展一类对象的功能&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;不需要子类&lt;/span&gt; &lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;需要子类&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;动态地&lt;/span&gt; &lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;静态地&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;运行时分配职责&lt;/span&gt; &lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;编译时分派职责&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;防止由于子类而导致的复杂和混乱&lt;/span&gt; &lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;导致很多子类产生，在一些场合，报漏类的层次&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;更多的灵活性&lt;/span&gt; &lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;缺乏灵活性&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;对于一个给定的对象，同时可能有不同的装饰对象，客户端可以通过它的需要选择合适的装饰对象发送消息。&lt;/span&gt; &lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;对于所有可能的联合，客户期望&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;很容易增加任何的&lt;/span&gt; &lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;困难&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;结构图&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;br /&gt;&lt;img src="file:///E:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif" alt="" width="431" height="356" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span lang="EN-US"&gt;&lt;br /&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;生活中的例子&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;装饰模式动态地给一个对象添加额外的职责。不论一幅画有没有画框都可以挂在墙上，但是通常都是有画框的，并且实际上是画框被挂在墙上。在挂在墙上之前，画可以被蒙上玻璃，装到框子里；这时画、玻璃和画框形成了一个物体。&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="120"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&lt;img src="file:///E:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image002.gif" alt="" width="223" height="226" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;二、迎接&lt;/span&gt;&lt;span lang="EN-US"&gt;Decorator&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;的到来&lt;/span&gt;&lt;span lang="EN-US"&gt;-&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;例子&lt;/span&gt;&lt;span lang="EN-US"&gt;1&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;例如我们要为一只&lt;/span&gt;&lt;span lang="EN-US"&gt;&amp;ldquo;&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;笔&lt;/span&gt;&lt;span lang="EN-US"&gt;&amp;rdquo;&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;来设计其行为。从我们拥有的面向对象的知识出发，为一个对象的原有&lt;span style="text-decoration: underline;"&gt;&lt;span style="color: #6600ff;"&gt;方法&lt;/span&gt;&lt;/span&gt;添加新的职责，可以通过继承机制，从写基类方法来实现，此时父类方法应为虚方法或是抽象方法。&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span lang="EN-US"&gt;1namespace DesignPattern.Decorator&lt;br /&gt;2{&lt;br /&gt;3&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;public class Pen&lt;br /&gt;4&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;{&lt;br /&gt;5&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;public virtual string Write()&lt;br /&gt;6&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;{&lt;br /&gt;7&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;return "&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;普通的笔&lt;/span&gt;&lt;span lang="EN-US"&gt;";&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;　&lt;/span&gt;&lt;span lang="EN-US"&gt; //&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;只能进行最基本的写&lt;/span&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="font-size: 9.0pt; mso-bidi-font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; color: #6600ff;"&gt;操作&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;br /&gt;8&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;}&lt;br /&gt;9&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;}&lt;br /&gt;10}&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;如果我们需要为该笔添加新的职责，让其可以调整字体大小&lt;/span&gt;&lt;span lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;这样的示例好象有点不符合现实哈，此处只是通过这个虚有的对象来演示&lt;/span&gt;&lt;span lang="EN-US"&gt;Decorator&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;，暂不考虑现实问题&lt;/span&gt;&lt;span lang="EN-US"&gt;)&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;，则可以定义一子类继承于&lt;/span&gt;&lt;span lang="EN-US"&gt;Pen&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;，然后重写&lt;/span&gt;&lt;span lang="EN-US"&gt;Write&lt;/span&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; color: #6600ff;"&gt;方法&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;。&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span lang="EN-US"&gt;1namespace DesignPattern.Decorator&lt;br /&gt;2{&lt;br /&gt;3&lt;br /&gt;4&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;public class BoldPen : Pen&lt;br /&gt;5&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;{&lt;br /&gt;6&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;public override string Write()&lt;br /&gt;7&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;{&lt;br /&gt;8&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;return base.Write() + FontSize();&lt;br /&gt;9&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;}&lt;br /&gt;10&lt;br /&gt;11&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;private string FontSize()&lt;br /&gt;12&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;{&lt;br /&gt;13&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;return "&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;字体大小：&lt;/span&gt;&lt;span lang="EN-US"&gt;10px";&lt;br /&gt;14&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;}&lt;br /&gt;15&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;}&lt;br /&gt;16}&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt; &lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;以上的实际完全符合&lt;span style="text-decoration: underline;"&gt;&lt;span style="color: #6600ff;"&gt;装饰&lt;/span&gt;&lt;/span&gt;模式的意图&lt;/span&gt;&lt;span lang="EN-US"&gt;&amp;ldquo;&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;不改变原有的行为动态地给一个对象添加一些新的功能&lt;/span&gt;&lt;span lang="EN-US"&gt;&amp;rdquo;&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;。想想，这样的设计美好吗？现在需求改变，要求这种笔出了能写之外同时还拥有可以设置字体大小及字体颜色的设置功能，按继承机制的思想来设计是不是应该继承&lt;/span&gt;&lt;span lang="EN-US"&gt;BlodPen&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;然后又重写&lt;/span&gt;&lt;span lang="EN-US"&gt;Write&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;方法呢？这样下去就形成了一个多子类的延伸的多重继承体系，最终出现的问题就是类无限的增多，既所谓的类爆炸。&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;三、重构&lt;/span&gt;&lt;span lang="EN-US"&gt;Decorator&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;的&lt;span style="text-decoration: underline;"&gt;&lt;span style="color: #6600ff;"&gt;设计&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;要解决上述出现类爆炸的问题该怎么办呢？仔细观察就会发现，通过继承子类在添加新的职责的时候都需要重写&lt;/span&gt;&lt;span lang="EN-US"&gt;Write&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;方法才能实现，那我们是不是应该重构一下，抽象出共性呢？答案是肯定的，我们完全可以把&lt;/span&gt;&lt;span lang="EN-US"&gt;Write&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;方法抽象为接口或抽象类，通过抽象后我们可以通过聚合的方法动态的组合新的功能职责。重构后的设计如下：&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;　接口的抽象：&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span lang="EN-US"&gt;1namespace DesignPattern.Decorator&lt;br /&gt;2{&lt;br /&gt;3&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;public interface IWrite&lt;br /&gt;4&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;{&lt;br /&gt;5&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;string Write();&lt;br /&gt;6&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;}&lt;br /&gt;7}&lt;br /&gt;8&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;Pen&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;类的设计：&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span lang="EN-US"&gt;1namespace DesignPattern.Decorator&lt;br /&gt;2{&lt;br /&gt;3&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;/**//// &amp;lt;summary&amp;gt;&lt;br /&gt;4&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;/// &lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;实现&lt;/span&gt;&lt;span lang="EN-US"&gt;IWrite&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;接口&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;br /&gt;5&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;/// &amp;lt;/summary&amp;gt;&lt;br /&gt;6&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;public class Pen:IWrite&lt;br /&gt;7&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;{&lt;br /&gt;8&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;public string Write()&lt;br /&gt;9&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;{&lt;br /&gt;10&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;return "&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;能写的笔&lt;/span&gt;&lt;span lang="EN-US"&gt;";&lt;br /&gt;11&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;}&lt;br /&gt;12&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;}&lt;br /&gt;13}&lt;br /&gt;14&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;BoldPen&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;类的&lt;span style="text-decoration: underline;"&gt;&lt;span style="color: #6600ff;"&gt;设计&lt;/span&gt;&lt;/span&gt;：&lt;/span&gt;&lt;span lang="EN-US"&gt;1namespace DesignPattern.Decorator&lt;br /&gt;2{&lt;br /&gt;3&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;public class BoldPen:IWrite&lt;br /&gt;4&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;{&lt;br /&gt;5&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;IWrite component = null;&lt;br /&gt;6&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;int borderWidth = 0;&lt;br /&gt;7&lt;br /&gt;8&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;public BoldPen() { }&lt;br /&gt;9&lt;br /&gt;10&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;public BoldPen(IWrite compontent, int borderWidth)&lt;br /&gt;11&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;{&lt;br /&gt;12&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;this.component = compontent;&lt;br /&gt;13&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;this.borderWidth = borderWidth;&lt;br /&gt;14&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;}&lt;br /&gt;15&lt;br /&gt;16&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;/**//// &amp;lt;summary&amp;gt;&lt;br /&gt;17&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;/// &lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;接口&lt;/span&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="font-size: 9.0pt; mso-bidi-font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; color: #6600ff;"&gt;方法&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;br /&gt;18&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;/// &amp;lt;/summary&amp;gt;&lt;br /&gt;19&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;public string Write()&lt;br /&gt;20&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;{&lt;br /&gt;21&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;//&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;调用接口方法&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;br /&gt;22&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;string pen = this.component.Write();&lt;br /&gt;23&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;return pen + " &lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;字体大小：&lt;/span&gt;&lt;span lang="EN-US"&gt;" + this.borderWidth.ToString();&lt;br /&gt;24&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;}&lt;br /&gt;25&lt;br /&gt;26&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;/**//// &amp;lt;summary&amp;gt;&lt;br /&gt;27&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;/// &lt;/span&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="font-size: 9.0pt; mso-bidi-font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; color: #6600ff;"&gt;装饰&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;方法&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;br /&gt;28&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;/// &amp;lt;/summary&amp;gt;&lt;br /&gt;29&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;/// &amp;lt;param name="borderWidth"&amp;gt;&amp;lt;/param&amp;gt;&lt;br /&gt;30&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;public void SetBorderWidth(int borderWidth)&lt;br /&gt;31&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;{&lt;br /&gt;32&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;this.borderWidth = borderWidth;&lt;br /&gt;33&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;}&lt;br /&gt;34&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;}&lt;br /&gt;35}&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;　&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;　如上的设计通过抽象出接口方法&lt;/span&gt;&lt;span lang="EN-US"&gt;Write&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;，&lt;span style="text-decoration: underline;"&gt;&lt;span style="color: #6600ff;"&gt;不同&lt;/span&gt;&lt;/span&gt;的功能组件去继承实现&lt;/span&gt;&lt;span lang="EN-US"&gt;IWrite&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;接口实现&lt;/span&gt;&lt;span lang="EN-US"&gt;Write&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;方法，通过特定的属性或方法&lt;/span&gt;&lt;span lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;我们可以叫它装饰方法&lt;/span&gt;&lt;span lang="EN-US"&gt;)&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;把自己的职责封装在自己的内部，这样的设计也完全符合面向对象的单一职责设计思想。&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;通过共性的抽象和一系列的新功能职责的&lt;span style="text-decoration: underline;"&gt;&lt;span style="color: #6600ff;"&gt;装饰&lt;/span&gt;&lt;/span&gt;，新的设计应运而生，现在如果我们需要扩展出一种新的笔种，要求出了具备基本的写行为之外，还同时带有可设置字体大小和字体颜色的功能。显然，我们之前的设计就派上了用场，这时我们只需要通过聚合的&lt;span style="text-decoration: underline;"&gt;&lt;span style="color: #6600ff;"&gt;方法&lt;/span&gt;&lt;/span&gt;就能够组合成这一种新的角色（笔种）出来。很明显应用了&lt;/span&gt;&lt;span lang="EN-US"&gt;Decorator&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;让设计变得更加灵活，同时也说明了一个问题，在我们实际的设计中，应少用继承多，尽量的通过聚合的方法来设计，&lt;span style="text-decoration: underline;"&gt;&lt;span style="color: #6600ff;"&gt;提高&lt;/span&gt;&lt;/span&gt;设计灵活度。&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; text-autospace: ideograph-other;"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"&gt;通过组合&lt;span style="text-decoration: underline;"&gt;&lt;span style="color: #6600ff;"&gt;设计&lt;/span&gt;&lt;/span&gt;出的新的笔种：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;" lang="EN-US"&gt;1namespace DesignPattern.Decorator&lt;br /&gt;2{&lt;br /&gt;3&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;"&gt;&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;" lang="EN-US"&gt;public class BoldColorPen:IWrite&lt;br /&gt;4&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;"&gt;&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;" lang="EN-US"&gt;{&lt;br /&gt;5&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;"&gt;&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;" lang="EN-US"&gt;private List&amp;lt;IWrite&amp;gt; list=null;&lt;br /&gt;6&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;"&gt;&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;" lang="EN-US"&gt;public BoldColorPen()&lt;br /&gt;7&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;"&gt;&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;" lang="EN-US"&gt;{ }&lt;br /&gt;8&lt;br /&gt;9&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;"&gt;&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;" lang="EN-US"&gt;public BoldColorPen(List&amp;lt;IWrite&amp;gt; list)&lt;br /&gt;10&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;"&gt;&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;" lang="EN-US"&gt;{&lt;br /&gt;11&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;"&gt;&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;" lang="EN-US"&gt;this.list = list;&lt;br /&gt;12&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;"&gt;&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;" lang="EN-US"&gt;}&lt;br /&gt;13&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;"&gt;&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;" lang="EN-US"&gt;public string Write()&lt;br /&gt;14&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;"&gt;&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;" lang="EN-US"&gt;{&lt;br /&gt;15&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;"&gt;&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;" lang="EN-US"&gt;string str = string.Empty;&lt;br /&gt;16&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;"&gt;&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;" lang="EN-US"&gt;for (int i = 0; i &amp;lt; list.Count; i++)&lt;br /&gt;17&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;"&gt;&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;" lang="EN-US"&gt;{&lt;br /&gt;18&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;"&gt;&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;" lang="EN-US"&gt;str += ((IWrite)list[i]).Write() + " ";&lt;br /&gt;19&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;"&gt;&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;" lang="EN-US"&gt;}&lt;br /&gt;20&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;"&gt;&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;" lang="EN-US"&gt;return str;&lt;br /&gt;21&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;"&gt;&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;" lang="EN-US"&gt;}&lt;br /&gt;22&lt;br /&gt;23&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;"&gt;&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;" lang="EN-US"&gt;private string Other()&lt;br /&gt;24&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;"&gt;&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;" lang="EN-US"&gt;{&lt;br /&gt;25&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;"&gt;　&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;" lang="EN-US"&gt; //&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;"&gt;同样我们还可为其添加自己的职责&lt;/span&gt;&lt;span style="font-size: 10.5pt; mso-bidi-font-size: 10.0pt; font-family: 'Calibri','sans-serif'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;" lang="EN-US"&gt;&lt;br style="mso-special-character: line-break;" /&gt;&lt;br style="mso-special-character: line-break;" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/6666/aggbug/1572552.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/6666/archive/2012/04/20/1572552.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/6666/archive/2012/04/20/1576288.html</id><title type="text">Silverlight3发布大会演示作品-全国首例Silverlight企业级开发实例讲解4-我们是如何选择项目生命周期的</title><summary type="text">概要：Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--&gt;1首先我会讲解软件工程领域项目生命周期的一些知识，后面我会把我参考的资料给大家以链接或者下载的方法予以提供！2讲解项目管理中要考虑的元素：需求，时间，风险，人力，质量，技术，配置，源代码等3讲解我们是如何根据以上几个要素来决定我们项目最后采用了迭代式，敏捷软件开发！第一：软件生命周期我主要将其分成三个部分:软件生命周期概念软件生命周期模型软件生命周期方法第一:软件生命周期的概念概要:Cod</summary><published>2012-04-20T03:01:00Z</published><updated>2012-04-20T03:01:00Z</updated><author><name>王书奎(网名:无忌)</name><uri>http://www.cnblogs.com/6666/</uri></author><link rel="alternate" href="http://www.cnblogs.com/6666/archive/2012/04/20/1576288.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/6666/archive/2012/04/20/1576288.html"/><content type="html">&lt;p&gt;&lt;span style="font-size: 300%;"&gt;&lt;span style="font-size: 38px;"&gt;&lt;span style="font-size: 300%;"&gt;&lt;span style="font-size: 38px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;span style="font-size: 24pt;"&gt;概要：&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 24pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #000000;"&gt;1首先我会讲解软件工程领域项目生命周期的一些知识，&lt;br /&gt;&lt;br /&gt;后面我会把我参考的资料给大家以链接或者下载的方法予&lt;br /&gt;&lt;br /&gt;以提供！&lt;br /&gt;&lt;br /&gt;2讲解项目管理中要考虑的元素：需求，时间，风险，人力，质量，技&lt;br /&gt;&lt;br /&gt;术，配置，源代码等&lt;br /&gt;&lt;br /&gt;3讲解我们是如何根据以上几个要素来决定我们项目最后采用了迭代式，敏&lt;br /&gt;&lt;br /&gt;捷软件开发！&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 300%;"&gt;&lt;span style="font-size: 46px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 18pt; color: red; background-color: yellow;"&gt;第一：软件生命周期&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 18pt; background-color: yellow;"&gt;我主要将其分成三个部分:&lt;br /&gt;&lt;br /&gt;软件生命周期概念&lt;br /&gt;&lt;br /&gt;软件生命周期模型&lt;br /&gt;&lt;br /&gt;软件生命周期方法&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 18pt; background-color: yellow;"&gt;&lt;span style="background-color: #ffff00;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 18pt; background-color: #ffffff;"&gt;&lt;strong&gt;第一:软件生命周期的概念&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;span style="font-family: Verdana;"&gt;&lt;br /&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;概要:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;span style="color: #000000; background-color: #ffffff;"&gt;从概念提出的那一刻开始，软件产品就进入了软件生命周期。在经历需求、分&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;/span&gt;&lt;span style="color: #000000; background-color: #ffffff;"&gt;析、设计、实现、部署后，软件将被使用并进入维护阶段，直到最后由于缺少&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;/span&gt;&lt;span style="color: #000000; background-color: #ffffff;"&gt;维护费用而逐渐消亡。这样的一个过程，称为&lt;/span&gt;&lt;span style="color: #800000; background-color: #ffffff;"&gt;"&lt;/span&gt;&lt;span style="color: #800000; background-color: #ffffff;"&gt;生命周期模型&lt;/span&gt;&lt;span style="color: #800000; background-color: #ffffff;"&gt;"&lt;/span&gt;&lt;span style="color: #000000; background-color: #ffffff;"&gt;（Life&amp;nbsp;Cycle&amp;nbsp;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;/span&gt;&lt;span style="color: #000000; background-color: #ffffff;"&gt;Model）。&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;strong&gt;&lt;strong&gt;　软件生命周期官方定义：&lt;br /&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;img id="Code_Closed_Image_155245" style="display: inline;" onclick="this.style.display='none'; document.getElementById('Code_Closed_Text_155245').style.display='none'; document.getElementById('Code_Open_Image_155245').style.display='inline'; document.getElementById('Code_Open_Text_155245').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" alt="" width="11" height="16" align="top" /&gt;&lt;img id="Code_Open_Image_155245" style="display: none;" onclick="this.style.display='none'; document.getElementById('Code_Open_Text_155245').style.display='none'; getElementById('Code_Closed_Image_155245').style.display='inline'; getElementById('Code_Closed_Text_155245').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" alt="" width="11" height="16" align="top" /&gt;&lt;span id="Code_Closed_Text_155245" class="cnblogs_code_Collapse" style="display: inline;"&gt;软件生命周期官方定义：&lt;/span&gt;&lt;span id="Code_Open_Text_155245" style="display: none;"&gt;&lt;br /&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;br /&gt;同任何事物一样,一个软件产品或软件系统也要经历孕育、诞生、成长、成熟、衰亡等阶段，一般称为软件生存周期（软件生命周期）。把整个软件生存周期划分为若干阶段，使得每个阶段有明确的任务，使规模大，结构复杂和管理复杂的软件开发变的容易控制和管理。通常，软件生存周期包括可行性分析与开发项计划、需求分析、设计（概要设计和详细设计）、编码、测试、维护等活动，可以将这些活动以适当的方式分配到不同的阶段去完成。&lt;br /&gt;软件生命周期(SDLC，软件生存周期)是软件的产生直到报废的生命周期，周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段，这种按时间分程的思想方法是软件工程中的一种思想原则，即按部就班、逐步推进，每个阶段都要有定义、工作、审查、形成文档以供交流或备查，以提高软件的质量。但随着新的面向对象的设计方法和技术的成熟，软件生命周期设计方法的指导意义正在逐步减少。&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="spctrl"&gt;&amp;nbsp;&lt;/div&gt;&lt;strong&gt;&lt;strong&gt;　软件生命周期(SDLC)的六个阶段&lt;br /&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;img id="Code_Closed_Image_155323" style="display: inline;" onclick="this.style.display='none'; document.getElementById('Code_Closed_Text_155323').style.display='none'; document.getElementById('Code_Open_Image_155323').style.display='inline'; document.getElementById('Code_Open_Text_155323').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" alt="" width="11" height="16" align="top" /&gt;&lt;img id="Code_Open_Image_155323" style="display: none;" onclick="this.style.display='none'; document.getElementById('Code_Open_Text_155323').style.display='none'; getElementById('Code_Closed_Image_155323').style.display='inline'; getElementById('Code_Closed_Text_155323').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" alt="" width="11" height="16" align="top" /&gt;&lt;span id="Code_Open_Text_155323" style="display: none;"&gt;&lt;br /&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;、问题的定义及规划&lt;br /&gt;此阶段是软件开发方与需求方共同讨论，主要确定软件的开发目标及其可行性。&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;、需求分析&lt;br /&gt;&lt;br /&gt;记住一句话：软件开发中唯一不变的是变化本身&lt;br /&gt;&lt;br /&gt;在确定软件开发可行的情况下，对软件需要实现的各个功能进行详细分析。需求分析阶段是一个很重要的阶段，这一阶段做得好，将为整个软件开发项目的成功打下良好的基础。&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;唯一不变的是变化本身。&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;，同样需求也是在整个软件开发过程中不断变化和深入的，因此我们必须制定需求变更计划来应付这种变化，以保护整个项目的顺利进行。&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;3&lt;/span&gt;&lt;span style="color: #000000;"&gt;、软件设计&lt;br /&gt;此阶段主要根据需求分析的结果，对整个软件系统进行设计，如系统框架设计，数据库设计等等。软件设计一般分为总体设计和详细设计。好的软件设计将为软件程序编写打下良好的基础。&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;4&lt;/span&gt;&lt;span style="color: #000000;"&gt;、程序编码&lt;br /&gt;此阶段是将软件设计的结果转换成计算机可运行的程序代码。在程序编码中必须要制定统一，符合标准的编写规范。以保证程序的可读性，易维护性，提高程序的运行效率。&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;5&lt;/span&gt;&lt;span style="color: #000000;"&gt;、软件测试&lt;br /&gt;在软件设计完成后要经过严密的测试，以发现软件在整个设计过程中存在的问题并加以纠正。整个测试过程分单元测试、组装测试以及系统测试三个阶段进行。测试的方法主要有白盒测试和黑盒测试两种。在测试过程中需要建立详细的测试计划并严格按照测试计划进行测试，以减少测试的随意性。&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;6&lt;/span&gt;&lt;span style="color: #000000;"&gt;、运行维护&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;第二：软件生命周期模型（不要和软件生命周期混淆了哦）&lt;br /&gt;&lt;br /&gt;典型的几种生命周期模型包括瀑布模型、快速原型模型、迭代模型&lt;br /&gt;&lt;br /&gt;瀑布模型（Waterfall Model）（也可以理解为&lt;/strong&gt;&lt;strong style="color: #00ff00;"&gt;文档&lt;/strong&gt;&lt;strong&gt;驱动模型）&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;img id="Code_Closed_Image_163150" onclick="this.style.display='none'; document.getElementById('Code_Closed_Text_163150').style.display='none'; document.getElementById('Code_Open_Image_163150').style.display='inline'; document.getElementById('Code_Open_Text_163150').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" alt="" width="11" height="16" align="top" /&gt;&lt;img id="Code_Open_Image_163150" style="display: none;" onclick="this.style.display='none'; document.getElementById('Code_Open_Text_163150').style.display='none'; getElementById('Code_Closed_Image_163150').style.display='inline'; getElementById('Code_Closed_Text_163150').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" alt="" width="11" height="16" align="top" /&gt;&lt;span id="Code_Closed_Text_163150" class="cnblogs_code_Collapse"&gt;瀑布模型&lt;/span&gt;&lt;span id="Code_Open_Text_163150" style="display: none;"&gt;&lt;br /&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;span style="color: #000000;"&gt;瀑布模型（Waterfall&amp;nbsp;Model）首先由Royce提出。该模型由于酷似瀑布闻名型，自顶向下把一个软件开发过程分为：系统定义、需求分析、设计、编码、测试和维护等阶段。在开发过程中这些阶段顺序进行，就像是一个飞流直下的瀑布，因此得名。该模&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;型可以用下面的图形来表示。&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;系统定义&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;\&lt;/span&gt;&lt;span style="color: #000000;"&gt;|/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;需求分析&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;\&lt;/span&gt;&lt;span style="color: #000000;"&gt;|/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;设计&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;\&lt;/span&gt;&lt;span style="color: #000000;"&gt;|/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;编码&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;\&lt;/span&gt;&lt;span style="color: #000000;"&gt;|/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;测试&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;\&lt;/span&gt;&lt;span style="color: #000000;"&gt;|/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;维护&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;在该模型中，首先确定需求，并接受客户和SQA小组的验证。然后拟定规格说明，同样通过验证后，进入计划阶段&amp;hellip;可以看出，瀑布模型中至关重要的一点是只有当一个阶段的文档已经编制好并获得SQA小组的认可才可以进入下一个阶段。这样，瀑布模型通过强制性的要求提供规约文档来确保每个阶段都能很好的完成任务。但是实际上往往难以办到，因为整个的模型几乎都是以文档驱动的，这对于非专业的用户来说是难以阅读和理解的。想象一下，你去买衣服的时候，售货员给你出示的是一本厚厚的服装规格说明，你会有什么样的感触。虽然瀑布模型有很多很好的思想可以借鉴，但是在过程能力上有天生的缺陷。&amp;nbsp;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;瀑布模型下的测试环节：&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;，在瀑布模型的基础上，还衍生出了强调测试活动的V模型。它把瀑布模型的测试阶段&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;进行细分，并于前面的阶段进行对应。细分出来的这些阶段分别为：单元测试阶段、集成&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;测试阶段和系统测试阶段。V模型的结构图如下。&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;系统定义&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;维护&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;----------&lt;/span&gt;&lt;span style="color: #000000;"&gt;\&lt;/span&gt;&lt;span style="color: #000000;"&gt;------------------------------/------------&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;需求分析&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;img src="http://www.cnblogs.com/Images/dot.gif" alt="" /&gt;..&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;系统测试&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;\&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;概要设计&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;img src="http://www.cnblogs.com/Images/dot.gif" alt="" /&gt;..&amp;nbsp;&amp;nbsp;&amp;nbsp;集成测试&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;\&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;详细设计&amp;nbsp;&amp;nbsp;&lt;img src="http://www.cnblogs.com/Images/dot.gif" alt="" /&gt;&amp;nbsp;&amp;nbsp;单元测试&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;\&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;编码&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&amp;nbsp;&amp;nbsp;系统测试（黑盒）：&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;与需求分析对应的是系统测试。因为需求分析的工作是分解用户的功能和性能需求并规&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;格化，所以系统测试的工作主要就是测试这些功能和性能指标是否都在软件中正确实现。&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;该测试把软件作为一个黑盒，针对每个需求规格组织各种输入并根据软件输出来判断该需&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;求规格是否正确实现，因此系统测试属于黑盒测试。&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;集成测试(灰盒)：&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;与概要设计对应的是集成测试。因为&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;概要设计的工作主要是根据功能把大的系统进行模块分解，所以集成测试的工作主要是，&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;把各模块逐步集成在一起，来测试数据是否能够在各模块间正确流动，以及各模块能否正&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;确同步。因为这种测试依赖于软件的架构但又不关心每个函数的实现细节，所以该测试又&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;常称为灰盒测试。&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;单元测试（白盒）：&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;与详细设计对应的是单元测试。它主要是详细设计中的每个功能单元（&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;通常是函数或过程）进行逻辑覆盖测试，因此这种测试属于白盒测试。与从需求到设计、&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;统测试，于是就形成了一个V字形的结构。&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&amp;nbsp;&amp;nbsp;与在瀑布模型中描述的一样，这些测试活动也是顺序进行的，并遵循一定的输入和输出&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;规则。&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&amp;nbsp;&amp;nbsp;瀑布模型的优点是清楚地标识出了软件开发的阶段。它采用自顶向下逐步求精的方式把&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;整个开发过程分成不同的阶段，每个阶段的工作都很明确，因此便于控制开发过程。当所&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;有的阶段都完成之后，该软件的开发过程也随之结束。&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&amp;nbsp;&amp;nbsp;瀑布模型的缺点正是它自身的顺序性所导致的。实际的开发过程中，在需求阶段很难把&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;用户的需求完全明确下来，因此，当需求变更时将会导致阶段反复，而且都要重复需求、&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;设计、编码、测试等过程。&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&amp;nbsp;&amp;nbsp;实际的开发过程中，用得较多的就是瀑布&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;V模型，只是可以根据实际需要进行阶段合并&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;与裁减。&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;p align="center"&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Verdana;"&gt;&lt;span style="font-weight: bold;"&gt;增量迭代式模型&lt;/span&gt; &lt;/span&gt;&lt;span style="font-family: Verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: Verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;img id="Code_Closed_Image_163245" onclick="this.style.display='none'; document.getElementById('Code_Closed_Text_163245').style.display='none'; document.getElementById('Code_Open_Image_163245').style.display='inline'; document.getElementById('Code_Open_Text_163245').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" alt="" width="11" height="16" align="top" /&gt;&lt;img id="Code_Open_Image_163245" style="display: none;" onclick="this.style.display='none'; document.getElementById('Code_Open_Text_163245').style.display='none'; getElementById('Code_Closed_Image_163245').style.display='inline'; getElementById('Code_Closed_Text_163245').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" alt="" width="11" height="16" align="top" /&gt;&lt;span id="Code_Closed_Text_163245" class="cnblogs_code_Collapse"&gt;迭代和增量模型&lt;/span&gt;&lt;span id="Code_Open_Text_163245" style="display: none;"&gt;&lt;br /&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;迭&lt;span style="color: #000000;"&gt;代：&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;迭代式模型是RUP推荐的周期模型。在RUP中，迭代被定义为：迭代包括产生产品发布（稳定、可执行的产品版本）的全部开发活动和要使用该发布必需的所有其他外围&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;元素。迭代的官方定义文绉绉的，通俗点说:就是把软件开发分成几个阶段，每个阶段都当作一个软件项目来对待，所以，在某种程度上，开发迭代是一次完整&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;地经过所有工作流程的过程：（至少包括）需求工作流程、分析设计工作流程、实施工作流程和测试工作流程。实质上，它类似小型的瀑布式项目。RUP认&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;为，所有的阶段（需求及其它）都可以细分为迭代。每一次的迭代都会产生一个可以发布的产品，这个产品是最终产品的一个子集。迭代的思想如上图所示。&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;增量：&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;增量和迭代有区别但两者又经常一起使用.所以这里要先解释下增量和迭代的概念.假设现在要开发A,B,C,D四个大的业务功能,每个功能都需要开发两周的时间.则对于增量方法而言可以将四个功能分为两次增量来完成,第一个增量完成A,B功能,第二次增量完成C,D功能;而对于迭代开发来将则是分两次迭代来开发,第一次迭代完成A,B,C,D四个基本业务功能但不含复杂的业务逻辑,而第二个功能再逐渐细化补充完整相关的业务逻辑.在第一个月过去后采用增量开始时候A,B全部开发完成而C,D还一点都没有动;而采用迭代开发的时候A,B,C,D四个的基础功能都已经完成.&amp;nbsp;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;RUP强调的每次迭代都包含了需求,设计和开发,测试等各个过程,而且每次迭代完成后都是一个可以交付的原型.迭代不是并行,在每次迭代过程中仍然要遵循需&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;求&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;设计&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;开发的瀑布过程.迭代周期的长度跟项目的周期和规模有很大的关系.小型项目可以一周一次迭代,而对于大型项目则可以2&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;4周一次迭代.如果项目没有一个&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;很好的架构师,很难规划出每次迭代的内容和要到达的目标,验证相关的交付和产出.因此迭代模型虽然能够很好的满足与用户的交付,需求的变化,但确是一个很难真正用好的模型.&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&amp;nbsp;迭代和瀑布的区别和优缺点对比：&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;迭代和瀑布的最大的差别就在于风险的暴露时间上。&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;任何项目都会涉及到一定的风险。如果能在生命周期中尽早确保避免了风险，那么您的计划自然会更趋精确。有许多风险直到已准备集成系统时才被发现。&lt;/span&gt;&lt;span style="color: #800000;"&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;不管开发团队经验如何，都绝不可能预知所有的风险。&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;（RUP）二者的区别如下图所示：&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;p align="left"&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/6666/%E7%80%91%E5%B8%83%E5%92%8C%E8%BF%AD%E4%BB%A3%E9%9A%8F%E7%9D%80%E6%97%B6%E9%97%B4%E5%A2%9E%E5%8A%A0%E9%A3%8E%E9%99%A9%E7%9A%84%E6%83%85%E5%86%B5.gif" alt="" width="500" height="250" border="0" /&gt;&lt;br /&gt;由于瀑布模型的特点（文档是主体），很多的问题在最后才会暴露出来，为了解决这些问题的风险是巨大的。"在迭代式生命周期中，您需要根据主要风险列表选择要在迭代中开发的新的增量内容。每次迭代完成时都会生成一个经过测试的可执行&lt;a class="innerlink" title="文件" href="http://www.hudong.com/wiki/%E6%96%87%E4%BB%B6"&gt;文件&lt;/a&gt;&lt;span style="font-family: Verdana;"&gt;，这样就可以核实是否已经降低了目标风险。"（RUP） &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;strong&gt;第三 软件生命周期方法：&lt;br /&gt;&lt;br /&gt;原型法&lt;br /&gt;&lt;/strong&gt;　&lt;span style="font-size: 16px; background-color: #eeeeee;"&gt;&lt;img id="Code_Closed_Image_160724" onclick="this.style.display='none'; document.getElementById('Code_Closed_Text_160724').style.display='none'; document.getElementById('Code_Open_Image_160724').style.display='inline'; document.getElementById('Code_Open_Text_160724').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" alt="" width="11" height="16" align="top" /&gt;&lt;span id="Code_Closed_Text_160724" class="cnblogs_code_Collapse"&gt;原型法基本理论&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: xx-large;"&gt;&lt;span style="font-size: 19px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;div&gt;&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="font-family: 宋体; font-size: medium;"&gt;原型法基本思想&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family: 宋体; color: #984198; font-size: medium;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #400080;"&gt;&lt;span style="font-family: 宋体; font-size: medium;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;span style="color: #000000;"&gt;原型法凭借着系统分析人员对用户要求的理解，在强有力的软件环境支持下，快速地给出一个实实在在的模型（或称原型、雏形），然&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;后与用户反复协商修改,最终形成实际系统&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family: 宋体; color: #ff0000;"&gt;&lt;strong&gt;&lt;strong&gt;&lt;span style="font-family: 宋体; color: #ff0000; font-size: medium;"&gt;原型法（&lt;/span&gt;&lt;span style="color: #ff0000; font-size: medium;"&gt;Prototyping&lt;/span&gt;&lt;span style="font-family: 宋体; color: #ff0000; font-size: medium;"&gt;）开发过程&lt;/span&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family: 宋体; color: #984198; font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;首先用户提出开发要求，开发人员识别和归纳用户要求，根据识别、归纳结果，构造出一个原型（即程序模块），然后同用户一道评&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family: 宋体; color: #984198; font-size: medium;"&gt;价这个原型。如果不行，则再对原型进行修改，直到用户满意为止。&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="color: #984198;"&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/6666/%E5%8E%9F%E5%9E%8B1.gif" alt="" width="412" height="254" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoPlainText" style="line-height: 150%; mso-outline-level: 1;"&gt;&lt;span style="color: #ff0000;"&gt;&lt;strong&gt;从原型向最终系统的转换 &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoPlainText" style="line-height: 150%;"&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoPlainText" style="line-height: 150%;"&gt;&amp;nbsp; &lt;span style="color: #800080;"&gt;原型经过反复的使用、评价和修改以后，即可转入最终系统(或称正式系统)的开发，如图4-3-9所示。从原型向正式系统的转换方式有三种。&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoPlainText" style="line-height: 150%;"&gt;&lt;span style="color: #800080;"&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/6666/%E5%8E%9F%E5%9E%8B%E6%B3%95.gif" alt="" width="278" height="319" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoPlainText" style="line-height: 150%;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoPlainText" style="line-height: 150%; mso-outline-level: 1;"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;1.程序一次性使用(只利用需求和规格)&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p class="MsoPlainText" style="line-height: 150%;"&gt;&lt;span style="color: #800080;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 该方法对原型研制限定在传统软件生命周期的某一阶段，例如，需求定义阶段，正如我们在本章第3节所介绍的那样。该阶段工作结束&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoPlainText" style="line-height: 150%;"&gt;&lt;span style="color: #800080;"&gt;后，原型随之作废。该方式可用于验证、完善系统需求和人机接口的原型开发。&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoPlainText" style="line-height: 150%; mso-outline-level: 1;"&gt;&lt;span style="color: #0000ff;"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2．程序嵌入(作为核心部分利用)&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoPlainText" style="line-height: 150%;"&gt;&lt;span style="color: #800080;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 程序嵌入方式是将完成了的原型体作为正式系统的核心部分。事实上这是一种附加策略，对应于我们在本章所介绍的演化型的开发形式，把原型作为核心，逐步添加新功能，发展成为最终系统。在抛弃策略中，原型与最终系统的开发可以采用不同的高级语言。而在附加策略中，因原型将作为最终系统的一部分，所以必须采用与最终系统相同的开发语言。&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoPlainText" style="line-height: 150%;"&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;3.程序自动变换&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="color: #800080;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;采用该方法时，原型体用高级语言开发，并自动将原型体变换成比最终系统的语言更低的中间语言，使得嵌入在最终系统中的原型体&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="color: #800080;"&gt;的运行效率比变换前大大提高。程序自动变换法尚存在一些未解决的问题，例如不同语言之间的自动变换的困难，后程序的性能不能保障&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="color: #800080;"&gt;等。因此，该方法目前还处在研究阶段，并未达到实用化程度。&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family: 宋体; color: #ff0000; font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;原型法优缺点和适用范围&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoPlainText" style="text-indent: 33px; line-height: 150%; mso-outline-level: 1;"&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;img id="Code_Closed_Image_155047" onclick="this.style.display='none'; document.getElementById('Code_Closed_Text_155047').style.display='none'; document.getElementById('Code_Open_Image_155047').style.display='inline'; document.getElementById('Code_Open_Text_155047').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" alt="" width="11" height="16" align="top" /&gt;&lt;img id="Code_Open_Image_155047" style="display: none;" onclick="this.style.display='none'; document.getElementById('Code_Open_Text_155047').style.display='none'; getElementById('Code_Closed_Image_155047').style.display='inline'; getElementById('Code_Closed_Text_155047').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" alt="" width="11" height="16" align="top" /&gt;&lt;span id="Code_Closed_Text_155047" class="cnblogs_code_Collapse"&gt;原型法的使用范围&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;strong style="font-size: 36pt;"&gt;我们项目中的原型举例：&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 300%;"&gt;&lt;span style="font-size: 48px;"&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 300%;"&gt;&lt;span style="font-size: 48px;"&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;在silverlight开发中，因为我们只有开发人员，而没有设计人员，所以微软便推荐了一家设计公司（微软金牌合作伙伴）。&lt;br /&gt;所以前期&lt;strong&gt;&amp;ldquo;三人帮&amp;rdquo;就出现了：客户，开发人员，设计公司&lt;/strong&gt;共同合作来设计出前台界面。可以用&amp;nbsp;PS画出来，可以用PPT文档设计出来。&lt;br /&gt;&lt;strong&gt;首先&lt;/strong&gt;：客户提出需求（其实这个时候我们已经形成需求文档），大家共同讨论，刚开始一定要让设计人员自由发挥，不要限制他们的思维，当差不多了，然后再提出一些限制。当设计公司用PPT设计出相应的界面后（一般是三个版本，供客户选择），客户选择一个自己喜欢的，或者全盘否定，由设计公司重新设计，经过不断的协商，最后客户选定一款。&lt;br /&gt;&lt;strong&gt;第二&lt;/strong&gt;：客户选定一款后，这个时候只是确定了框架的整个外貌，然后还要针对其中的小细节继续商量，设计公司然后不断完善，最终达到客户的要求。然后设计公司根据PPT用xaml的矩形或者简单的东西组织出来，并且打到和PPT一样的效果。&lt;br /&gt;&lt;strong&gt;第三&lt;/strong&gt;：客户满意之后，然后是我们开发人员了，我们会提出一些技术难题，尽量让设计公司制作的前台能够降低我们的开发难度。&lt;br /&gt;比如：&lt;br /&gt;1设计公司原来给们设计的xaml，datagrid是用矩形堆积出来的，我们立刻要求他们在datagrid的基础上进行样式的制作，并且打到客户要求的水平。&lt;br /&gt;2我们要求所有的空间全部用样式去做，并且要有一个样式的详细说明书。等等&lt;br /&gt;下面是早期的一些我们开发人员提出的问题：&lt;/div&gt;&lt;div&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;img id="Code_Closed_Image_154948" style="display: inline;" onclick="this.style.display='none'; document.getElementById('Code_Closed_Text_154948').style.display='none'; document.getElementById('Code_Open_Image_154948').style.display='inline'; document.getElementById('Code_Open_Text_154948').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" alt="" width="11" height="16" align="top" /&gt;&lt;img id="Code_Open_Image_154948" style="display: none;" onclick="this.style.display='none'; document.getElementById('Code_Open_Text_154948').style.display='none'; getElementById('Code_Closed_Image_154948').style.display='inline'; getElementById('Code_Closed_Text_154948').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" alt="" width="11" height="16" align="top" /&gt;&lt;span id="Code_Closed_Text_154948" class="cnblogs_code_Collapse" style="display: inline;"&gt;我们开发人员向设计公司提出的建议&lt;/span&gt;&lt;span id="Code_Open_Text_154948" style="display: none;"&gt;&lt;br /&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;1我们的项目中需要用到很多DataGrid控件,&amp;nbsp;你们提供的实例中&amp;nbsp;批量数据的展示不是用DataGrid(GridVew)做出来的&amp;nbsp;而是每一行放置一个Grid,Grid中再放置很多的TextBox控件&amp;nbsp;堆积出来的,如果我们用DataGrid控件来实现这些功能,希望也可以很方便的引用你们事先定义好的样式,而我们只需要专心做&amp;nbsp;如何与数据库交互.(如果实现复杂,可提供部分注释或说明文档,这样我们可以花较少的时间把样式引用到我们的项目中)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;我们的菜单&amp;nbsp;全部是根据权限从数据库中取出数据&amp;nbsp;动态生成的,我们可能会在后台动态调用style&amp;nbsp;资源&amp;nbsp;等信息&amp;nbsp;,所以&lt;br /&gt;&amp;nbsp;应该把构成菜单的元素,&amp;nbsp;最好全部&amp;nbsp;用&amp;nbsp;style&amp;nbsp;定义,这样我们在后台直接用代码调用.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;3&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;动态生成菜单的方法:&amp;nbsp;&lt;br /&gt;&amp;nbsp;第一种:首先在页面&amp;nbsp;放置两个布局控件StackPanel(也可以是Canvas,Grid),一个用于承载一级菜单,一个用来承载二级菜单,然后动态往里面添加button&lt;br /&gt;第二种:同样放置两个StackPanel,然后把一级和二级菜单子元素分别定义成一个控件,然后再用后台代码动态调用用户控件.&lt;br /&gt;&lt;br /&gt;请问:你们还有什么更好的解决方案吗,既能动态生成菜单&amp;nbsp;又能很方面的加载菜单上的动画效果,样式,资源,事件,数据.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;4&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;对于经常用到的style&amp;nbsp;可以放在&amp;nbsp;APP.xaml文件中&amp;nbsp;&amp;nbsp;最好稍微注释一下,&amp;nbsp;能够很容易辨别哪些样式是适用哪个控件的.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;5&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;如果用theme(主题)&amp;nbsp;统一全局定义样式&amp;nbsp;资源等&amp;nbsp;信息&amp;nbsp;也要&amp;nbsp;按照&amp;nbsp;不同的XAP包分别定义不同的theme文件.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;6&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;最好将每一个模块对应的用户控件(页面),资源&amp;nbsp;,图片等信息分别放在不同的文件夹中&lt;br /&gt;&lt;br /&gt;7silverlight的精髓之一&amp;nbsp;动画效果&amp;nbsp;可用在&amp;nbsp;菜单的显示&amp;nbsp;上&amp;nbsp;,尤其是方案设计这一块&amp;nbsp;,一定要绚,精心打造&lt;/span&gt;&lt;span style="color: #000000;"&gt;!&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;动画都是事件驱动的,你们可以模拟&amp;nbsp;点击一个button&amp;nbsp;出现动画效果,&amp;nbsp;由我们自行根据需要添加动画,你们添加的动画&amp;nbsp;要能够方便我们移植到其他页面上&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;8&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;silverlight&amp;nbsp;全站开发&amp;nbsp;,如何提高silverlight&amp;nbsp;性能&amp;nbsp;可以让页面快速展示,&amp;nbsp;能不能给几点建议&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;如果频繁与数据库交互,json&amp;nbsp;&amp;nbsp;,WCF,&amp;nbsp;ADO.NET&amp;nbsp;EntityFrame,&amp;nbsp;linq&amp;nbsp;&amp;nbsp;WebClinet&amp;nbsp;等&amp;nbsp;方式&amp;nbsp;哪种速度最快&amp;nbsp;而且较稳定&lt;br /&gt;&lt;br /&gt;9动画效果&amp;nbsp;样式效果&amp;nbsp;要统一&amp;nbsp;&amp;nbsp;,尽量把一些公用的动画效果&amp;nbsp;样式&amp;nbsp;资源&amp;nbsp;等&amp;nbsp;放在单独的地方&amp;nbsp;&amp;nbsp;然后&amp;nbsp;用名字引用&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;10&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;如果用silverlight&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080;"&gt;3&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;开发&amp;nbsp;页面的打开速度&amp;nbsp;,与数据库交互的效率&amp;nbsp;会不会有很大的提升,从而创造更好的用户体验.&lt;br /&gt;&lt;br /&gt;11XAP&amp;nbsp;包一般多大比较好&amp;nbsp;,拆分XAP包&amp;nbsp;有没有好的建议&amp;nbsp;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;12&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;微软&amp;nbsp;推荐的&amp;nbsp;一些影响性能的&amp;nbsp;效果&amp;nbsp;比如&amp;nbsp;隐藏&amp;nbsp;可多用Visibility（可视性）&amp;nbsp;而不使用&amp;nbsp;Opacity（不透明度）,在设计的时候&amp;nbsp;可注意一下&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;13&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;你们设计的时候&amp;nbsp;可能会用到一些&amp;nbsp;特殊的字体&amp;nbsp;,请问该如何&amp;nbsp;将这些字体嵌入到silverlight开发工具中&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;strong&gt;第四&lt;/strong&gt;：当三方都协商之后，设计公司根据要求设计出来前台（一般就是用基本控件堆积出来的）。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;我们是用页面数量来计算资金的，为了达到降低成本，我们不可能要求设计公司设计每一个页面，而是挑出公共的。&lt;br /&gt;这样设计出来的产品就是符合三方利益的原型。我们之后的开发都是基于这个设计开发的。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;strong&gt;第五&lt;/strong&gt;：需求人员和客户还要商量一些逻辑，就是点击某个button需要出现什么样的效果。也就是面向开发人员的用户操作手册。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;这个操作手册按照需求模块来分类。分配任务的时候，方便开发人员查阅。&lt;br /&gt;最后就形成了设计搞和操作手册。这个是我们开发人员开始开发的原型。&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;下面是部分设计demo和操作手册内容。&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;strong&gt;设计公司前台（PPT文档或者PS图形效果）&lt;/strong&gt;：&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/6666/222dd.JPG" alt="" width="467" height="183" /&gt;&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;设计公司XAML语言：&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;img id="Code_Closed_Image_142637" style="display: inline;" onclick="this.style.display='none'; document.getElementById('Code_Closed_Text_142637').style.display='none'; document.getElementById('Code_Open_Image_142637').style.display='inline'; document.getElementById('Code_Open_Text_142637').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" alt="" width="11" height="16" align="top" /&gt;&lt;img id="Code_Open_Image_142637" style="display: none;" onclick="this.style.display='none'; document.getElementById('Code_Open_Text_142637').style.display='none'; getElementById('Code_Closed_Image_142637').style.display='inline'; getElementById('Code_Closed_Text_142637').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" alt="" width="11" height="16" align="top" /&gt;&lt;span id="Code_Closed_Text_142637" class="cnblogs_code_Collapse" style="display: inline;"&gt;Code&lt;/span&gt;&lt;span id="Code_Open_Text_142637" style="display: none;"&gt;&lt;br /&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid&amp;nbsp;HorizontalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Stretch&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;x:Name&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;NewsGrid&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Auto&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Grid.Column&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;1&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Grid.Row&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;3&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Rectangle&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Auto&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;HorizontalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Stretch&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Margin&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;1,1,-1,-1&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;x:Name&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;SolutionBlockShadow1_Copy3&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;VerticalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Stretch&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Auto&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Fill&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;#33000000&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Stroke&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;{x:Null}&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;RadiusX&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;5&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;RadiusY&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;5&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid&amp;nbsp;HorizontalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Stretch&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Margin&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;0,0,0,0&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Auto&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Auto&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;VerticalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Stretch&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Auto&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;HorizontalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Stretch&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;x:Name&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;CommonBlockBg1_Copy3&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;VerticalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Stretch&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Auto&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Margin&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;0,0,0,0&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Rectangle&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Auto&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;HorizontalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Stretch&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;VerticalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Stretch&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Auto&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Stroke&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;{x:Null}&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;RadiusX&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;5&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;RadiusY&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;5&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Rectangle.Fill&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;LinearGradientBrush&amp;nbsp;EndPoint&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;0.5,1&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;StartPoint&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;0.5,0&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;GradientStop&amp;nbsp;Color&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;#FF414141&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;GradientStop&amp;nbsp;Color&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;#FF252525&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Offset&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;1&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;GradientStop&amp;nbsp;Color&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;#FF252525&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Offset&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;0.969&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;GradientStop&amp;nbsp;Color&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;#FF424242&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Offset&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;0.92&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;LinearGradientBrush&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;Rectangle.Fill&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;Rectangle&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Rectangle&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Auto&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;HorizontalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Stretch&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;VerticalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Stretch&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Auto&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Stroke&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;{x:Null}&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;RadiusX&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;5&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;RadiusY&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;5&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Margin&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;1,1,1,4&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Rectangle.Fill&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;LinearGradientBrush&amp;nbsp;EndPoint&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;0.5,1&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;StartPoint&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;0.5,0&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;GradientStop&amp;nbsp;Color&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;#FF2F2F2F&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;GradientStop&amp;nbsp;Color&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;#FF303030&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Offset&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;1&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;GradientStop&amp;nbsp;Color&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;#FF1C1C1C&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Offset&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;0.165&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;GradientStop&amp;nbsp;Color&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;#FF252525&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Offset&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;0.147&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;LinearGradientBrush&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;Rectangle.Fill&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;Rectangle&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;TextBlock&amp;nbsp;Margin&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;15,14,0,0&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;FontFamily&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft&amp;nbsp;YaHei&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;FontSize&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;16&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Foreground&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;#FFFFFFFF&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Text&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;方案新闻&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;TextWrapping&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;NoWrap&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;VerticalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Top&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;HorizontalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Left&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Button&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;18&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;HorizontalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Right&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Margin&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;0,10,8,0&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Style&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;{StaticResource&amp;nbsp;CheckMoreButtonStyle_Gray}&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;VerticalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Top&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;18&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;10&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;HorizontalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Center&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;VerticalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Center&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;10&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Path&amp;nbsp;Data&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;M3.0000012,0&amp;nbsp;L7.000001,0&amp;nbsp;L7.000001,2.9999998&amp;nbsp;L10,2.9999998&amp;nbsp;L10,7&amp;nbsp;L7.000001,7&amp;nbsp;L7.000001,10&amp;nbsp;L3.0000012,10&amp;nbsp;L3.0000012,7&amp;nbsp;L0,7&amp;nbsp;L0,2.9999998&amp;nbsp;L3.0000012,2.9999998&amp;nbsp;z&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Fill&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;#FF848484&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Stretch&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Fill&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Stroke&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;{x:Null}&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;Button&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;StackPanel&amp;nbsp;HorizontalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Stretch&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Margin&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;15,43,9,10&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Auto&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Visibility&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Collapsed&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;24&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;ColumnDefinition&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;0.172*&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;ColumnDefinition&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;0.828*&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;TextBlock&amp;nbsp;HorizontalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Left&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;VerticalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Center&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;FontFamily&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft&amp;nbsp;YaHei&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;FontSize&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;12&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Foreground&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;#FF8BD238&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Text&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;2009-03-12&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;TextWrapping&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Wrap&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;TextBlock&amp;nbsp;x:Name&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;NewsTextBlock0&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;HorizontalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Stretch&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;VerticalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Center&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Text&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;事业单位养老改革：年金将成&lt;img src="http://www.cnblogs.com/Images/dot.gif" alt="" /&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;TextWrapping&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;NoWrap&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;FontFamily&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft&amp;nbsp;YaHei&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;FontSize&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;12&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Grid.Column&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;1&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Foreground&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;#FFFFFFFF&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Rectangle&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;1&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;VerticalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Top&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Opacity&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;0.3&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Fill&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;#FF555555&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Stroke&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;{x:Null}&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;24&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;443&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;ColumnDefinition&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;0.172*&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;ColumnDefinition&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;0.828*&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;TextBlock&amp;nbsp;HorizontalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Left&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;VerticalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Center&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;FontFamily&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft&amp;nbsp;YaHei&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;FontSize&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;12&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Foreground&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;#FF8BD238&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Text&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;2009-03-12&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;TextWrapping&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Wrap&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;TextBlock&amp;nbsp;x:Name&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;NewsTextBlock1&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;FontFamily&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft&amp;nbsp;YaHei&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;FontSize&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;12&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Foreground&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;#FFFFFFFF&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Text&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;用什么保证企业年金的安全&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;TextWrapping&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;NoWrap&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Margin&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;0,0,9,0&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;VerticalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Center&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Grid.Column&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;1&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;d:LayoutOverrides&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Width,&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Rectangle&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;1&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Opacity&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;0.3&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Fill&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;#FF555555&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Stroke&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;{x:Null}&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;443&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;24&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;443&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;ColumnDefinition&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;0.172*&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;ColumnDefinition&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;0.828*&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;TextBlock&amp;nbsp;HorizontalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Left&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;VerticalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Center&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;FontFamily&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft&amp;nbsp;YaHei&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;FontSize&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;12&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Foreground&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;#FF8BD238&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Text&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;2009-03-12&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;TextWrapping&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Wrap&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;TextBlock&amp;nbsp;x:Name&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;NewsTextBlock2&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;FontFamily&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft&amp;nbsp;YaHei&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;FontSize&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;12&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Foreground&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;#FFFFFFFF&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Text&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;建职业年金&amp;nbsp;事业人员退休金或&lt;img src="http://www.cnblogs.com/Images/dot.gif" alt="" /&gt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;TextWrapping&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;NoWrap&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Margin&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;0,0,9,0&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;VerticalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Center&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Grid.Column&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;1&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;d:LayoutOverrides&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Width,&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Rectangle&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;1&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Opacity&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;0.3&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Fill&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;#FF555555&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Stroke&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;{x:Null}&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;443&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;24&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;443&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;ColumnDefinition&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;0.172*&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;ColumnDefinition&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;0.828*&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;TextBlock&amp;nbsp;HorizontalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Left&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;VerticalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Center&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;FontFamily&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft&amp;nbsp;YaHei&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;FontSize&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;12&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Foreground&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;#FF8BD238&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Text&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;2009-03-12&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;TextWrapping&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Wrap&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;TextBlock&amp;nbsp;x:Name&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;NewsTextBlock3&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;FontFamily&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft&amp;nbsp;YaHei&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;FontSize&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;12&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Foreground&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;#FFFFFFFF&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Text&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;事业单位养老金不会骤降&amp;nbsp;职业&lt;img src="http://www.cnblogs.com/Images/dot.gif" alt="" /&gt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;TextWrapping&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;NoWrap&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Margin&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;0,0,9,0&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;VerticalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Center&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Grid.Column&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;1&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;d:LayoutOverrides&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Width,&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Rectangle&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;1&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Opacity&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;0.3&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Fill&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;#FF555555&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Stroke&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;{x:Null}&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;443&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;StackPanel&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;ListBox&amp;nbsp;HorizontalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Stretch&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Margin&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;15,43,9,10&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Auto&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;BorderThickness&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;0,0,0,0&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Background&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;{x:Null}&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Foreground&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;#FFFFFFFF&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;BorderBrush&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;{x:Null}&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Padding&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;0,0,0,0&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;HorizontalContentAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Stretch&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Style&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;{StaticResource&amp;nbsp;PacsNewsListBoxStyle}&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;ItemContainerStyle&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;{StaticResource&amp;nbsp;PacsNewsListBoxItemStyle}&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Auto&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Auto&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;VerticalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Top&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Margin&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;-3,0,0,0&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;HorizontalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Left&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;24&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;ColumnDefinition&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;75&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;ColumnDefinition&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Auto&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;TextBlock&amp;nbsp;HorizontalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Left&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;VerticalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Center&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;FontFamily&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft&amp;nbsp;YaHei&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;FontSize&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;12&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Foreground&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;#FF8BD238&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Text&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;2009-03-12&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;TextWrapping&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Wrap&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;TextBlock&amp;nbsp;&amp;nbsp;HorizontalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Stretch&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;VerticalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Center&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Text&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;事业单位养老改革：年金将成&lt;img src="http://www.cnblogs.com/Images/dot.gif" alt="" /&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;TextWrapping&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;NoWrap&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;FontFamily&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft&amp;nbsp;YaHei&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;FontSize&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;12&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Grid.Column&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;1&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Foreground&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;#FFFFFFFF&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Rectangle&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;1&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;VerticalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Top&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Opacity&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;0.3&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Fill&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;#FF555555&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Stroke&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;{x:Null}&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;422&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Auto&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Auto&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;VerticalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Top&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Margin&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;-3,0,0,0&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;24&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;ColumnDefinition&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;75&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;ColumnDefinition&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Auto&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;TextBlock&amp;nbsp;HorizontalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Left&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;VerticalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Center&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;FontFamily&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft&amp;nbsp;YaHei&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;FontSize&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;12&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Foreground&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;#FF8BD238&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Text&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;2009-03-12&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;TextWrapping&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Wrap&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;TextBlock&amp;nbsp;&amp;nbsp;HorizontalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Stretch&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;VerticalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Center&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Text&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;事业单位养老改革：年金将成&lt;img src="http://www.cnblogs.com/Images/dot.gif" alt="" /&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;TextWrapping&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;NoWrap&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;FontFamily&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft&amp;nbsp;YaHei&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;FontSize&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;12&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Grid.Column&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;1&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Foreground&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;#FFFFFFFF&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Rectangle&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;1&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;VerticalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Top&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Opacity&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;0.3&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Fill&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;#FF555555&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Stroke&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;{x:Null}&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;422&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Auto&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Auto&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;VerticalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Top&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Margin&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;-3,0,0,0&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;24&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;ColumnDefinition&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;75&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;ColumnDefinition&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Auto&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;TextBlock&amp;nbsp;HorizontalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Left&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;VerticalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Center&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;FontFamily&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft&amp;nbsp;YaHei&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;FontSize&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;12&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Foreground&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;#FF8BD238&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Text&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;2009-03-12&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;TextWrapping&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Wrap&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;TextBlock&amp;nbsp;&amp;nbsp;HorizontalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Stretch&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;VerticalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Center&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Text&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;事业单位养老改革：年金将成&lt;img src="http://www.cnblogs.com/Images/dot.gif" alt="" /&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;TextWrapping&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;NoWrap&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;FontFamily&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft&amp;nbsp;YaHei&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;FontSize&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;12&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Grid.Column&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;1&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Foreground&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;#FFFFFFFF&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Rectangle&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;1&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;VerticalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Top&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Opacity&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;0.3&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Fill&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;#FF555555&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Stroke&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;{x:Null}&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;422&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Auto&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Auto&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;VerticalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Top&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Margin&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;-3,0,0,0&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;24&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;ColumnDefinition&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;75&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;ColumnDefinition&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Auto&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;TextBlock&amp;nbsp;HorizontalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Left&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;VerticalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Center&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;FontFamily&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft&amp;nbsp;YaHei&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;FontSize&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;12&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Foreground&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;#FF8BD238&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Text&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;2009-03-12&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;TextWrapping&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Wrap&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;TextBlock&amp;nbsp;&amp;nbsp;HorizontalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Stretch&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;VerticalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Center&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Text&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;事业单位养老改革：年金将成&lt;img src="http://www.cnblogs.com/Images/dot.gif" alt="" /&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;TextWrapping&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;NoWrap&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;FontFamily&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft&amp;nbsp;YaHei&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;FontSize&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;12&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Grid.Column&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;1&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Foreground&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;#FFFFFFFF&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Rectangle&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;1&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;VerticalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Top&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Opacity&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;0.3&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Fill&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;#FF555555&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Stroke&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;{x:Null}&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;422&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Auto&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Auto&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;VerticalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Top&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Margin&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;-3,0,0,0&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;24&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;ColumnDefinition&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;75&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;ColumnDefinition&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Auto&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;TextBlock&amp;nbsp;HorizontalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Left&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;VerticalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Center&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;FontFamily&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft&amp;nbsp;YaHei&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;FontSize&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;12&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Foreground&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;#FF8BD238&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Text&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;2009-03-12&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;TextWrapping&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Wrap&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;TextBlock&amp;nbsp;&amp;nbsp;HorizontalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Stretch&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;VerticalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Center&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Text&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;事业单位养老改革：年金将成&lt;img src="http://www.cnblogs.com/Images/dot.gif" alt="" /&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;TextWrapping&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;NoWrap&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;FontFamily&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft&amp;nbsp;YaHei&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;FontSize&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;12&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Grid.Column&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;1&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Foreground&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;#FFFFFFFF&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Rectangle&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;1&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;VerticalAlignment&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Top&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Opacity&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;0.3&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Fill&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;#FF555555&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Stroke&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;{x:Null}&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;422&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;ListBox&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;Grid&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;也就是用一些简单的东西堆积 出来 。&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;用户操作手册：&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;以注册功能为例，看看根据设计公司demo形成的操作手册（图形来自设计公司的第一次设计的demo），也是我们开发人员参考的文档：&lt;/div&gt;&lt;div&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;img id="Code_Closed_Image_143153" style="display: none;" onclick="this.style.display='none'; document.getElementById('Code_Closed_Text_143153').style.display='none'; document.getElementById('Code_Open_Image_143153').style.display='inline'; document.getElementById('Code_Open_Text_143153').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" alt="" width="11" height="16" align="top" /&gt;&lt;img id="Code_Open_Image_143153" style="display: inline;" onclick="this.style.display='none'; document.getElementById('Code_Open_Text_143153').style.display='none'; getElementById('Code_Closed_Image_143153').style.display='inline'; getElementById('Code_Closed_Text_143153').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" alt="" width="11" height="16" align="top" /&gt;&lt;span id="Code_Closed_Text_143153" class="cnblogs_code_Collapse" style="display: none;"&gt;注册功能&lt;/span&gt;&lt;span id="Code_Open_Text_143153" style="display: inline;"&gt;&lt;br /&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #800080;"&gt;4&lt;/span&gt;&lt;span style="color: #000000;"&gt;.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;注册&lt;br /&gt;功能简介：&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;系统的用户主要分为三大类，（外网）企业用户、总部精算人员、各中心精算人员，其中总部精算人员和各中&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&amp;nbsp;&lt;/div&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span id="Code_Open_Text_143153" style="display: inline;"&gt;&lt;span style="color: #000000;"&gt;心精算人员通过公司内部网络及内部登录系统来访问精算咨询系统；外网企业用户通过互联网登录首页，并注册成&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span id="Code_Open_Text_143153" style="display: inline;"&gt;&lt;span style="color: #000000;"&gt;为系统用户，才可以登录到系统。&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span id="Code_Open_Text_143153" style="display: inline;"&gt;&lt;span style="color: #000000;"&gt;操作流程：&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span id="Code_Open_Text_143153" style="display: inline;"&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;、&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;点击[马上注册]，进入注册免责说明界面，如图：&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span id="Code_Open_Text_143153" style="display: inline;"&gt;&lt;span style="color: #000000;"&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/6666/zhuce1.JPG" alt="" width="500" height="331" /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;、勾选&amp;lsquo;我已阅读并同意以上条填款&amp;rsquo;，点击[下一步]进入注册信息界面，填写完成后，点击[保存]，注册成功。如图:&lt;br /&gt;&amp;nbsp;&lt;img src="http://images.cnblogs.com/cnblogs_com/6666/zhuce2.JPG" alt="" width="447" height="314" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;5&lt;/span&gt;&lt;span style="color: #000000;"&gt;.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;忘记密码&lt;br /&gt;功能简介：&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;如果用户忘记密码，可以通过此功能，通过正确回答注册时设置的问题的答案，重新设置新的密码。&lt;br /&gt;操作流程：&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;、&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;点击[忘记密码]，提示输入账户，如图：&lt;br /&gt;&amp;nbsp;&lt;img src="http://images.cnblogs.com/cnblogs_com/6666/zhuce3.JPG" alt="" width="407" height="236" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;、&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;点击[下一步]，进入提示问题界面，如图：&lt;br /&gt;&amp;nbsp;&lt;img src="http://images.cnblogs.com/cnblogs_com/6666/zhuce4.JPG" alt="" width="414" height="249" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;3&lt;/span&gt;&lt;span style="color: #000000;"&gt;、&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;输入正确的问题答案后，点[下一步]，进入设定密码界面。&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;4&lt;/span&gt;&lt;span style="color: #000000;"&gt;、&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;两次输入密码后（两次输入的密码必须相同）点击[确定]，密码设置成功。&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 300%;"&gt;&lt;span style="font-size: 32px;"&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 300%;"&gt;&lt;span style="font-size: 32px;"&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;strong style="font-size: 24pt;"&gt;我们就是根据上面形成的原型进行开发的。&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 300%;"&gt;&lt;span style="font-size: 32px;"&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;快速和敏捷开发&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;我们一般将快速和敏捷开发做为方法论,而很少将其做为一种软件开发生命周期模型.敏捷的目的是减少繁重和不必要的工件的输出,提高效率.而不是要我们去挑阶段或过程,不是分析设计都还没有做就去做开发.因此对于瀑布,增量迭代或原型我们都可以借鉴敏捷方法论中的一些好的实践,这些实践都是对传统的生命周期模型很好的补充.对于敏捷方法论在此不再做过多的叙述.&lt;p class="content"&gt;关于选择生命周期模型的最后的总结&lt;br /&gt;&lt;br /&gt;1.在前期需求明确的情况下尽量采用瀑布模型或改进型的瀑布模型.&lt;br /&gt;2.在用户无信息系统使用经验,需求分析人员技能不足情况下一定要借助原型.&lt;br /&gt;3.在不确定性因素很多,很多东西前面无法计划情况下尽量采用增量迭代和螺旋模型&lt;br /&gt;4.在需求不稳定情况下尽量采用增量迭代模型&lt;br /&gt;5.在资金和成本无法一次到位情况下可以采用增量模型,软件产品分多个版本进行发布&lt;br /&gt;6.对于完全多个独立功能开发可以在需求阶段就分功能并行,但每个功能内都应该遵循瀑布模型&lt;br /&gt;7.对于全新系统的开发必须在总体设计完成后再开始增量或并行.&lt;br /&gt;8.对于编码人员经验较少情况下建议不要采用敏捷或迭代等生命周期模型.&lt;br /&gt;9.增量,迭代和原型可以综合使用,但每一次增量或迭代都必须有明确的交付和出口准则.&lt;/p&gt;&lt;p class="content"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="content"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="content"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="content"&gt;&lt;span style="font-size: 36pt;"&gt;我们是如何进行需求管理的：&lt;/span&gt;&lt;/p&gt;&lt;p class="content"&gt;&lt;span style="font-size: 300%;"&gt;&lt;span style="font-size: 48px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="content"&gt;现实世界是在不断变化的，而且变化的速度是越来越快，IT领域唯一不变的就是&amp;ldquo;变化&amp;rdquo;。&lt;/p&gt;&lt;p class="content"&gt;一个项目是否能够成功，对需求的准确把握在成功因素中要占上60%的比例。不管系统的架构设计、团队管理有多么的成功，如果需求出现偏差，仍然是南辕北辙。&lt;/p&gt;项目开发过程中能够与客户建立有效快速的沟通渠道，是项目成功的关键。&lt;/div&gt;&lt;div&gt;我们的需求管理：&lt;/div&gt;&lt;div&gt;1需求跟踪，定时更新。&lt;/div&gt;&lt;div&gt;2架构师，项目经理根据变化的需要讨论，分解，形成任务分配下去。&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 48px;"&gt;我们是如何进行进度管理的：&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;保 证项目进度不出现大的偏差的前提是制定一个好的项目计划。必须根据项目规模，成员情况，技术难度等多方面考虑整个项目计划。如果项目的deadline已经确定，则必须采用一些方法来保障项目计划的完成。首先是选择符合项目的软件开发生命周期。通常情况下，并不建议采用瀑布开发方式。最佳的办法，应该是 RUP或者敏捷开发，然后结合原型法制订项目计划。这样可以规避因为需求变更产生的风险。&lt;br /&gt;&lt;br /&gt;其次，要每日跟踪项目的进展情况。可以通过晨会、周会以及项目日报、项目周报了解项目进展情况。同时，需要为各个小组指定进度跟踪人，根据各个小组长的日报，判断实际的进度是否与计划出现偏差。&lt;br /&gt;要制定项目进度偏差的应对方法。一旦项目进度出现了偏差，必须采取相应错误解决问题。或者通过加班、增加人手、申请项目进度等方法及时作出响应。&lt;br /&gt;&lt;br /&gt;及时向项目成员汇报项目进度情况。只有让各个项目成员了解到项目现状，才能够给每个成员增加压力，不至于松懈。同时，也能够使得每个成员能有一个目标，而不至于茫然失措。&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;span style="font-size: 48px;"&gt;我们是如何进行人员变更管理的：&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;人员变更。如果不控制好，两者对项目的进展都会带来灾难性的后果。需求变更在前面已经叙述，而EAS项目中发现人员变更的情况也非常严重，因此这里重点介绍关于人员变更的管理。&lt;br /&gt;&lt;br /&gt;如果发生人员进入的情况，那么对项目带来的通常都会是好的影响。但我们也必须注意如何让新成员更快地融入团队。整体上讲，如果需要新成员加入，发生变更的最佳时机是项目前期。如果在项目中后期加入新成员，无疑则意味着项目出现了灾难性的后果。而新增加的成员，由于不熟悉项目，所能带来好的影响也是有限的。如果不处理好新成员与老成员之间的合作关系，反而会带来负面影响。&lt;br /&gt;&lt;br /&gt;人员的退出很多时候是不可控的，同时对项目带来的影响也是不可估计的。为了将这些影响降到最低，就必须在项目开始之初就要确立编码规范。同时，还应该重视对文档的维护与更新。而在人员退出时，必须做好交接工作。同时，还应对这种变更进行合理的评估，并及时报告项目管理部，并与客户及时沟通。如果对项目进度有严重影响，应争取最大的努力取得客户的理解，提出项目延期的申请。&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 300%;"&gt;&lt;span style="font-size: 48px;"&gt;&lt;strong&gt;风险管理&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 300%;"&gt;&lt;span style="font-size: 48px;"&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/6666/aggbug/1576288.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/6666/archive/2012/04/20/1576288.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/6666/archive/2010/10/15/1852460.html</id><title type="text">Silverlight-MEF-DEMO-扩展计算机的功能</title><summary type="text">“托管扩展性框架（Managed Extensibility Framework，简称MEF），是微软.NET框架下为提高应用和组件复用程度而推出的，用于使组件能够最大化的重用。使用MEF能够使静态编译的.NET应用程序转换为动态组合，这将是创建可扩展应用、可扩展框架和应用扩展的好途径。它将做为.NET Framework 4.0的组成部分之一发布。现在，MEF也将被包含在Silver...</summary><published>2010-10-15T09:56:00Z</published><updated>2010-10-15T09:56:00Z</updated><author><name>王书奎(网名:无忌)</name><uri>http://www.cnblogs.com/6666/</uri></author><link rel="alternate" href="http://www.cnblogs.com/6666/archive/2010/10/15/1852460.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/6666/archive/2010/10/15/1852460.html"/><content type="html">&lt;p&gt;&amp;ldquo;托管扩展性框架（Managed Extensibility Framework，简称MEF），是微软.NET框架下为提高应用和组件复用程度而推出的，用于使组件能够最大化的重用。使用MEF能够使静态编译的.NET应用程序转换为动态组合，这将是创建可扩展应用、可扩展框架和应用扩展的好途径。它将做为.NET Framework 4.0的组成部分之一发布。现在，MEF也将被包含在Silverlight 4.0中。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;那么MEF是怎样工作的呢？简单分为三个步骤：&lt;/p&gt;&lt;p&gt;&amp;bull;Export （输出）&lt;br /&gt;&amp;bull;Import （输入）&lt;br /&gt;&amp;bull;Compose （组合） &lt;br /&gt;简短说一下MEF的工作原理，MEF的核心包括一个catalog和一个CompositionContainer。category用于发现扩展，而container用于协调创建和梳理依赖性。每个可组合的Part提供了一个或多个Export，并且通常依赖于一个或多个外部提供的服务或Import。每个Part管理一个实例为应用程序运行。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;下面我们做一个小型可扩展计算器示例来解释这三个过程 &lt;/p&gt;&lt;p&gt;1.首先下载MEF框架包，Silverlight 4.0会自带，不过微软已经将其开源了。&lt;br /&gt;&lt;a href="http://www.codeplex.com/MEF"&gt;http://www.codeplex.com/MEF&lt;/a&gt;&lt;br /&gt;2.创建一个Silverlight Navigate Application ,并添加程序集引用(MEF_Beta_2\bin\SL目录下 System.ComponentModel.Composition.dll) &lt;br /&gt;在项目下添加两个类文件Package.cs和PackageCatalog.cs，这两个文件在最新的MEF版本中没有提供，主要用于加载silverlight的Xap包。&lt;br /&gt;这两个文件在MEF框架的Sample中提供了(MEF_Beta_2\Samples\PictureViewer\PictureViewer.Common)，将这两个类的访问修饰符改为public, 添加后注意修改命名空间。&lt;br /&gt;3.修改Home.cs 类&lt;/p&gt;&lt;p&gt;代码 &lt;/p&gt;&lt;p&gt;using System;&lt;br /&gt;using System.Net;&lt;br /&gt;using System.Windows;&lt;br /&gt;using System.Windows.Controls;&lt;br /&gt;using System.Windows.Documents;&lt;br /&gt;using System.Windows.Ink;&lt;br /&gt;using System.Windows.Input;&lt;br /&gt;using System.Windows.Media;&lt;br /&gt;using System.Windows.Media.Animation;&lt;br /&gt;using System.Windows.Shapes;&lt;br /&gt;using System.ComponentModel.Composition;&lt;br /&gt;using System.ComponentModel;&lt;/p&gt;&lt;p&gt;namespace MefDemo&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //用于更新界面的委托&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public delegate void OperateHandler(IOperate Op);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 运算器接口&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public interface IOperate&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; double Op(double left, double right);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string Symbol { set; get; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string Label { get; set; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 加法运算器&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Export(typeof(IOperate))]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public class AddButton : Button, IOperate&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Import("AddButtonContract",AllowRecomposition = true)]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string Label { get { return this.Content.ToString(); } set { this.Content = value; } }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Import("AddSybomContract", AllowRecomposition = true)]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string Symbol { set; get; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Import("ClickHandler")]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public OperateHandler ClickAction { get; set; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #region IOperate 成员&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public double Op(double left, double right)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return left + right;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #endregion&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public AddButton()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.Click += (s, e) =&amp;gt; ClickAction(this);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 减法运算器&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Export(typeof(IOperate))]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public class SubButton : Button, IOperate&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Import("SubButtonContract",AllowRecomposition=true)]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string Label { get { return this.Content.ToString(); } set { this.Content = value; } }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Import("SubSybomContract", AllowRecomposition = true)]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string Symbol { set; get; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Import("ClickHandler")]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public OperateHandler ClickAction { get; set; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #region IOperate 成员&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public double Op(double left, double right)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return left - right;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #endregion&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public SubButton()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.Click += (s, e) =&amp;gt; ClickAction(this);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 为每个运算器的属性提供值&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public class ComponentAttributeProvider&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Export("AddButtonContract")]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string AddLabel&amp;nbsp; { get { return "Add"; } }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Export("AddSybomContract")]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string AddSymbol { get { return "+"; } }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Export("SubButtonContract")]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string SubLabel&amp;nbsp; { get { return "Sub"; } }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Export("SubSybomContract")]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string SubSymbol { get { return "-"; } }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;4.修改 Home.xaml&lt;/p&gt;&lt;p&gt;代码 &lt;/p&gt;&lt;p&gt;&amp;lt;navigation:Page x:Class="MefDemo.Home" &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns="&lt;a href="http://schemas.microsoft.com/winfx/2006/xaml/presentation"&gt;http://schemas.microsoft.com/winfx/2006/xaml/presentation&lt;/a&gt;" &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:x="&lt;a href="http://schemas.microsoft.com/winfx/2006/xaml"&gt;http://schemas.microsoft.com/winfx/2006/xaml&lt;/a&gt;" &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:d="&lt;a href="http://schemas.microsoft.com/expression/blend/2008"&gt;http://schemas.microsoft.com/expression/blend/2008&lt;/a&gt;" xmlns:mc="&lt;a href="http://schemas.openxmlformats.org/markup-compatibility/2006"&gt;http://schemas.openxmlformats.org/markup-compatibility/2006&lt;/a&gt;"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Title="Home"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Style="{StaticResource PageStyle}"&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;navigation:Page.Resources&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ItemsPanelTemplate x:Key="ItemsPanelTemplate1"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ItemsPanelTemplate&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/navigation:Page.Resources&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Grid x:Name="LayoutRoot"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ScrollViewer x:Name="PageScrollViewer" Style="{StaticResource PageScrollViewerStyle}"&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;StackPanel x:Name="ContentStackPanel" Background="Black"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;StackPanel&amp;nbsp;&amp;nbsp; Orientation="Horizontal" Width="455" Height="89" Margin="91,0,91,-30"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TextBox x:Name="LeftNum" HorizontalAlignment="Left"&amp;nbsp;&amp;nbsp; VerticalAlignment="Center" Width="83" TextWrapping="Wrap"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TextBlock x:Name="Symbol" Width="62" Text="+" TextWrapping="Wrap" FontSize="24" Foreground="#FFF80606" TextAlignment="Center" VerticalAlignment="Center" HorizontalAlignment="Left"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TextBox x:Name="RightNum" HorizontalAlignment="Left"&amp;nbsp;&amp;nbsp; VerticalAlignment="Center" Width="78" TextWrapping="Wrap"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TextBlock Width="64" Text="=" TextWrapping="Wrap" Foreground="#FFF20808" FontSize="21.333" TextAlignment="Center" VerticalAlignment="Center" HorizontalAlignment="Left"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TextBox x:Name="Result" HorizontalAlignment="Left"&amp;nbsp;&amp;nbsp; VerticalAlignment="Center" Width="146" TextWrapping="Wrap"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/StackPanel&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ListBox x:Name="operateList"&amp;nbsp; ItemsSource="{Binding}" ItemsPanel="{StaticResource ItemsPanelTemplate1}" Height="99" Background="{x:Null}" BorderBrush="{x:Null}"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Button x:Name="DynamicLoadButton" Height="40" Width="196" Content="DynamicLoadOperate"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/StackPanel&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ScrollViewer&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Grid&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;lt;/navigation:Page&amp;gt;&lt;/p&gt;&lt;p&gt;5.新建类 OperatorComponent.cs&lt;/p&gt;&lt;p&gt;代码 &lt;/p&gt;&lt;p&gt;using System;&lt;br /&gt;using System.Net;&lt;br /&gt;using System.Windows;&lt;br /&gt;using System.Windows.Controls;&lt;br /&gt;using System.Windows.Documents;&lt;br /&gt;using System.Windows.Ink;&lt;br /&gt;using System.Windows.Input;&lt;br /&gt;using System.Windows.Media;&lt;br /&gt;using System.Windows.Media.Animation;&lt;br /&gt;using System.Windows.Shapes;&lt;br /&gt;using System.ComponentModel.Composition;&lt;br /&gt;using System.ComponentModel;&lt;/p&gt;&lt;p&gt;namespace MefDemo&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //用于更新界面的委托&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public delegate void OperateHandler(IOperate Op);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 运算器接口&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public interface IOperate&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; double Op(double left, double right);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string Symbol { set; get; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string Label { get; set; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 加法运算器&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Export(typeof(IOperate))]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public class AddButton : Button, IOperate&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Import("AddButtonContract",AllowRecomposition = true)]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string Label { get { return this.Content.ToString(); } set { this.Content = value; } }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Import("AddSybomContract", AllowRecomposition = true)]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string Symbol { set; get; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Import("ClickHandler")]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public OperateHandler ClickAction { get; set; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #region IOperate 成员&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public double Op(double left, double right)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return left + right;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #endregion&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public AddButton()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.Click += (s, e) =&amp;gt; ClickAction(this);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 减法运算器&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Export(typeof(IOperate))]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public class SubButton : Button, IOperate&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Import("SubButtonContract",AllowRecomposition=true)]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string Label { get { return this.Content.ToString(); } set { this.Content = value; } }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Import("SubSybomContract", AllowRecomposition = true)]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string Symbol { set; get; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Import("ClickHandler")]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public OperateHandler ClickAction { get; set; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #region IOperate 成员&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public double Op(double left, double right)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return left - right;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #endregion&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public SubButton()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.Click += (s, e) =&amp;gt; ClickAction(this);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 为每个运算器的属性提供值&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public class ComponentAttributeProvider&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Export("AddButtonContract")]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string AddLabel&amp;nbsp; { get { return "Add"; } }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Export("AddSybomContract")]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string AddSymbol { get { return "+"; } }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Export("SubButtonContract")]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string SubLabel&amp;nbsp; { get { return "Sub"; } }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Export("SubSybomContract")]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string SubSymbol { get { return "-"; } }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;6.运行。 这样就构建了一个简单的运算器，其中的Export、Import就像一个个管道一样相互连接。&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;7.按照这样的设计，我们想要对其进行扩展，就必须把接口分离。新建一个Silverlight ClassLibrary Project(Named ContractLibrary),这个Library用来封装所有的扩展接口，定义Import/Export契约。&lt;br /&gt;现在把原项目中的OperatorComponent.cs 类中的接口迁移到Library项目中，新建类文件OperateContract.cs 。&lt;/p&gt;&lt;p&gt;代码 &lt;/p&gt;&lt;p&gt;using System;&lt;br /&gt;using System.Net;&lt;br /&gt;using System.Windows;&lt;br /&gt;using System.Windows.Controls;&lt;br /&gt;using System.Windows.Documents;&lt;br /&gt;using System.Windows.Ink;&lt;br /&gt;using System.Windows.Input;&lt;br /&gt;using System.Windows.Media;&lt;br /&gt;using System.Windows.Media.Animation;&lt;br /&gt;using System.Windows.Shapes;&lt;/p&gt;&lt;p&gt;namespace ContractLibrary&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public delegate void OperateHandler(IOperate Op);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 运算器接口&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public interface IOperate&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; double Op(double left, double right);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string Symbol { set; get; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string Label { get; set; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;编译通过后在Silverlight主工程(MefDemo)中添加对ContractLibrary项目的引用&lt;br /&gt;8.再新建一个Silverlight ClassLibrary Project (Named StaticExtension),，这个工程就是我们用来静态扩展的DLL。&lt;br /&gt;a). 在工程下新建我们的运算器类，AddButton.cs , SubButton.cs.(代码不变).&lt;br /&gt;b). 但注意要添加对ContractLibrary项目的引用和MEF的框架集引用) 。&lt;br /&gt;c). 添加全局属性配置类(ComponentConfiguration.cs)&lt;br /&gt;d). 删除主工程中的ComponetOperater.cs.&lt;br /&gt;e). 添加对StaticExtension的引用.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;9.OK,这样我们就可以任意扩展运算器，添加更多的扩展运算了。&lt;/p&gt;&lt;p&gt;10.那么下面是添加一个新的乘法运算所要做的工作。&lt;br /&gt;在StaticExtension中添加新类 Multiply.cs&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;代码 &lt;/p&gt;&lt;p&gt;using System;&lt;br /&gt;using System.Net;&lt;br /&gt;using System.Windows;&lt;br /&gt;using System.Windows.Controls;&lt;br /&gt;using System.Windows.Documents;&lt;br /&gt;using System.Windows.Ink;&lt;br /&gt;using System.Windows.Input;&lt;br /&gt;using System.Windows.Media;&lt;br /&gt;using System.Windows.Media.Animation;&lt;br /&gt;using System.Windows.Shapes;&lt;br /&gt;using System.ComponentModel.Composition;&lt;br /&gt;using ContractLibrary;&lt;/p&gt;&lt;p&gt;namespace StaticExtension&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 乘法运算器&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Export(typeof(IOperate))]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public class MultiplyButton : Button, IOperate&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Import("MultiplyButtonContract", AllowRecomposition = true)]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string Label { get { return this.Content.ToString(); } set { this.Content = value; } }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Import("MultiplySybomContract", AllowRecomposition = true)]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string Symbol { set; get; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Import("ClickHandler")]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public OperateHandler ClickAction { get; set; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #region IOperate 成员&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public double Op(double left, double right)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return left * right;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #endregion&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public MultiplyButton()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.Click += (s, e) =&amp;gt; ClickAction(this);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;11.上面的是静态加载，那么现在我们使用MEF实现动态扩展运算器。桌面程序的动态扩展是动态加载DLL，而对于Silverlight的Web程序则是动态加载Xap包了。&lt;br /&gt;新建普通Silverlight Application（Named DynamicExtension）.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;去掉勾选Add a test page that references the application.&lt;br /&gt;1). 删掉App和Main等不必要的文件，只留一个空的Silverlight项目，以减少Xap包的大小。&lt;br /&gt;2). 添加ContractLibrary和MEF框架集的引用(可以将引用程序集属性CopyLocal设置为false，因为我们在主工程中已经添加了，可以重用)&lt;br /&gt;3). 添加类Division.cs.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;代码 &lt;/p&gt;&lt;p&gt;using System;&lt;br /&gt;using System.Net;&lt;br /&gt;using System.Windows;&lt;br /&gt;using System.Windows.Controls;&lt;br /&gt;using System.Windows.Documents;&lt;br /&gt;using System.Windows.Ink;&lt;br /&gt;using System.Windows.Input;&lt;br /&gt;using System.Windows.Media;&lt;br /&gt;using System.Windows.Media.Animation;&lt;br /&gt;using System.Windows.Shapes;&lt;br /&gt;using System.ComponentModel.Composition;&lt;br /&gt;using ContractLibrary;&lt;/p&gt;&lt;p&gt;namespace DynamicExtension&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 乘法运算器&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Export(typeof(IOperate))]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public class DivisionButton : Button, IOperate&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Import("DivisionButtonContract", AllowRecomposition = true)]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string Label { get { return this.Content.ToString(); } set { this.Content = value; } }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Import("DivisionSybomContract", AllowRecomposition = true)]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string Symbol { set; get; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Import("ClickHandler")]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public OperateHandler ClickAction { get; set; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #region IOperate 成员&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public double Op(double left, double right)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return left * right;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #endregion&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public DivisionButton()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.Click += (s, e) =&amp;gt; ClickAction(this);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;4).&amp;nbsp; 添加配置类ComponentConfiguration.cs&lt;/p&gt;&lt;p&gt;代码 &lt;/p&gt;&lt;p&gt;using System;&lt;br /&gt;using System.Net;&lt;br /&gt;using System.Windows;&lt;br /&gt;using System.Windows.Controls;&lt;br /&gt;using System.Windows.Documents;&lt;br /&gt;using System.Windows.Ink;&lt;br /&gt;using System.Windows.Input;&lt;br /&gt;using System.Windows.Media;&lt;br /&gt;using System.Windows.Media.Animation;&lt;br /&gt;using System.Windows.Shapes;&lt;br /&gt;using System.ComponentModel.Composition;&lt;/p&gt;&lt;p&gt;namespace DynamicExtension&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 为每个运算器的属性配置值&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public class ComponentConfiguration&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Export("DivisionButtonContract")]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string AddLabel { get { return "Div"; } }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Export("DivisionSybomContract")]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string AddSymbol { get { return "/"; } }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;5). 修改Home.cs ，为其注册下载包的相关事件和回调 &lt;/p&gt;&lt;p&gt;1.&lt;br /&gt;代码 &lt;/p&gt;&lt;p&gt;using System;&lt;br /&gt;using System.Windows;&lt;br /&gt;using System.Windows.Controls;&lt;br /&gt;using System.Windows.Navigation;&lt;br /&gt;using System.Collections.ObjectModel;&lt;br /&gt;using System.ComponentModel.Composition.Hosting;&lt;br /&gt;using System.Reflection;&lt;br /&gt;using System.ComponentModel.Composition;&lt;br /&gt;using ContractLibrary;&lt;/p&gt;&lt;p&gt;namespace MefDemo&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public partial class Home : Page&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [ImportMany(typeof(IOperate),AllowRecomposition = true)]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public ObservableCollection&amp;lt;IOperate&amp;gt; Operates = new ObservableCollection&amp;lt;IOperate&amp;gt;();&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Export("ClickHandler")]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public OperateHandler ClickHandler { get { return OperateButton_Click; } }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private PackageCatalog Catalog;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 用于界面控件响应运算后的一些更新工作&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;param name="Operate"&amp;gt;运算器&amp;lt;/param&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void OperateButton_Click(IOperate Operate)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Symbol.Text = Operate.Symbol;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; double left = double.Parse(LeftNum.Text);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; double right = double.Parse(RightNum.Text);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.Result.Text = Operate.Op(left, right).ToString();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (Exception e)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ChildWindow errorWin = new ErrorWindow(e);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; errorWin.Show();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Home()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InitializeComponent();&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.Loaded += new RoutedEventHandler(Home_Loaded);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //注册按钮事件&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.DynamicLoadButton.Click += (s, e) =&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //下载包&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Package.DownloadPackageAsync(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new Uri("DynamicExtension.xap", UriKind.Relative),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (args, package) =&amp;gt; Catalog.AddPackage(package)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //包被添加到PackageCatalog后会自动重新组合&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //并对添加了AllowRecomposition = true属性的Import导入器重新输入数据&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; void Home_Loaded(object sender, RoutedEventArgs e)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //组合当前XAP包中所有部件(Parts)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Catalog = new PackageCatalog();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Catalog.AddPackage(Package.Current);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CompositionContainer container = new CompositionContainer(Catalog);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; container.ComposeParts(this);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //组合后所有实现运算接口(IOperate)的运算器都将被自动填充到 Operates 集合。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //将运算器绑定到 ListBox 控件，用于呈现。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.operateList.DataContext = Operates;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Executes when the user navigates to this page.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected override void OnNavigatedTo(NavigationEventArgs e)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Ok，最终界面。&lt;br /&gt;&amp;nbsp;&lt;br /&gt;点击DynamicLoadOperate按钮后&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;程序中还有很多细节没有展开说明，理论性的介绍可以参考MSDN和CodePlex上的文档。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;文章出处：飞诺网(&lt;a href="http://www.firnow.com):http://dev.firnow.com/course/4_webprogram/asp.net/netjs/20100714/442928.html"&gt;www.firnow.com):http://dev.firnow.com/course/4_webprogram/asp.net/netjs/20100714/442928.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/6666/aggbug/1852460.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/6666/archive/2010/10/15/1852460.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/6666/archive/2010/10/15/1852382.html</id><title type="text">Silverlight按需加载--MEF方式--这篇文章简单,跟着做一遍再说--以后会翻译成中文</title><summary type="text">MEF gives us the ability to do this. This post will cover the basics needed to build such a composite application split between different silerlight applications and download the referenced silverligh...</summary><published>2010-10-15T08:54:00Z</published><updated>2010-10-15T08:54:00Z</updated><author><name>王书奎(网名:无忌)</name><uri>http://www.cnblogs.com/6666/</uri></author><link rel="alternate" href="http://www.cnblogs.com/6666/archive/2010/10/15/1852382.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/6666/archive/2010/10/15/1852382.html"/><content type="html">&lt;p&gt;MEF gives us the ability to do this.&amp;nbsp; This post will cover the basics needed to build such a composite application split between different silerlight applications and download the referenced silverlight application only when needed.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Steps:&lt;/strong&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Create a Silverlight 4 application&lt;/li&gt;&lt;li&gt;Add references to the following assemblies:&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;System.ComponentModel.Composition.dll&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;System.ComponentModel.Composition.Initialization.dll&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Add a new Silverlight 4 application called ExternalSilverlightApplication to the solution that was created in step 1.&amp;nbsp; Ensure the new application is hosted in the web application for the solution and choose to not create a test page for the new application.&lt;/li&gt;&lt;li&gt;Delete the App.xaml and MainPage.xaml files &amp;ndash; they aren&amp;rsquo;t needed.&lt;/li&gt;&lt;li&gt;Add references to the following assemblies in the ExternalSilverlightApplication project:&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;System.ComponentModel.Composition.dll&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;System.ComponentModel.Composition.Initialization.dll&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Ensure the two references above have their Copy Local values set to false.&amp;nbsp; As we will have these two assmblies in the original Silverlight application, we will have no need to include them in the built ExternalSilverlightApplication build.&lt;/li&gt;&lt;li&gt;Add a new user control called LeftControl to the ExternalSilverlightApplication project.&lt;/li&gt;&lt;li&gt;Replace the LayoutRoot Grid with the following xaml:&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Grid x:Name="LayoutRoot" Background="Beige" Margin="40" &amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Button Content="Left Content" Margin="30"&amp;gt;&amp;lt;/Button&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Grid&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Add the following statement to the top of the LeftControl.xaml.cs file&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;using System.ComponentModel.Composition;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Add the following attribute to the LeftControl class&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000;"&gt;[Export(typeof(LeftControl))]&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;This attribute tells MEF that the type LeftControl will be exported &amp;ndash; i.e. made available for other applications to import and compose into the application.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Add a new user control called RightControl to the ExternalSilverlightApplication project.&lt;/li&gt;&lt;li&gt;Replace the LayoutRoot Grid with the following xaml:&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Grid x:Name="LayoutRoot" Background="Green" Margin="40" &amp;nbsp;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TextBlock Margin="40" Foreground="White" Text="Right Control" FontSize="16" VerticalAlignment="Center" HorizontalAlignment="Center" &amp;gt;&amp;lt;/TextBlock&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Grid&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Add the following statement to the top of the RightControl.xaml.cs file&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;using System.ComponentModel.Composition;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Add the following attribute to the RightControl class&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000;"&gt;[Export(typeof(RightControl))]&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;In your original Silverlight project add a reference to the ExternalSilverlightApplication project.&lt;/li&gt;&lt;li&gt;Change the reference to the ExternalSilverlightApplication project to have it&amp;rsquo;s Copy Local value = false.&amp;nbsp; This will ensure that the referenced ExternalSilverlightApplication Silverlight application is not included in the original Silverlight application package when it it built.&amp;nbsp; The ExternalSilverlightApplication Silverlight application therefore has to be downloaded on demand by the original Silverlight application for it&amp;rsquo;s controls to be used.&lt;/li&gt;&lt;li&gt;In your original Silverlight project add the following xaml to the LayoutRoot Grid in MainPage.xaml:&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;&amp;nbsp; &amp;lt;Grid.RowDefinitions&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;RowDefinition Height="65*" /&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;RowDefinition Height="235*" /&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Grid.RowDefinitions&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Button Name="LoaderButton" Content="Download External Controls" Click="Button_Click"&amp;gt;&amp;lt;/Button&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Center" &amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Border Name="LeftContent" Background="Red" BorderBrush="Gray" CornerRadius="20"&amp;gt;&amp;lt;/Border&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Border Name="RightContent" Background="Red" BorderBrush="Gray" CornerRadius="20"&amp;gt;&amp;lt;/Border&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/StackPanel&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The borders will hold the controls that will be downlaoded, imported and composed via MEF when the button is clicked.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Add the following statement to the top of the MainPage.xaml.cs file&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;using System.ComponentModel.Composition;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Add the following properties to the MainPage class:&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;&amp;nbsp; [Import(typeof(LeftControl))]&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public LeftControl LeftUserControl { get; set; }&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Import(typeof(RightControl))]&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public RightControl RightUserControl { get; set; }&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;This defines properties accepting LeftControl and RightControl types.&amp;nbsp; The attrributes are used to tell MEF the discovered type that should be applied to the property when composition occurs.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Add the following event handler for the button click to the MainPage.xaml.cs file:&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #008000;"&gt;private void Button_Click(object sender, RoutedEventArgs e)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DeploymentCatalog deploymentCatalog =&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; new DeploymentCatalog("ExternalSilverlightApplication.xap");&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CompositionHost.Initialize(deploymentCatalog);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deploymentCatalog.DownloadCompleted += (s, i) =&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (i.Error == null)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CompositionInitializer.SatisfyImports(this);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LeftContent.Child = LeftUserControl;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RightContent.Child = RightUserControl;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LoaderButton.IsEnabled = false;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deploymentCatalog.DownloadAsync();&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p&gt;This is where the magic happens!&amp;nbsp; The deploymentCatalog object is pointed to the ExternalSilverlightApplication.xap file.&amp;nbsp; It is then associated with the CompositionHost initialization.&amp;nbsp; As the download will be asynchronous, an eventhandler is created for the DownloadCompleted event.&amp;nbsp; The deploymentCatalog object is then told to start the asynchronous download.&lt;/p&gt;&lt;p&gt;The event handler that executes when the download is completed uses the CompositionInitializer.SatisfyImports() function to tell MEF to satisfy the Imports for the current class.&amp;nbsp; It is at this point that the LeftUserControl and RightUserControl properties are initialized with composed objects from the downloaded ExternalSilverlightApplication.xap package.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Run the application click the Download External Controls button and see the controls defined in the ExternalSilverlightApplication application loaded into the original Silverlight application.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Congratulations!&amp;nbsp; You have implemented download on demand capabilities for composite applications using the MEF DeploymentCatalog class.&amp;nbsp; You are now able to segment your applications into separate xap file for deployment.&lt;/p&gt;&lt;img src="http://www.cnblogs.com/6666/aggbug/1852382.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/6666/archive/2010/10/15/1852382.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/6666/archive/2010/10/15/1852288.html</id><title type="text">Silverlight动态加载--MEF方法-</title><summary type="text">.NET 4.0中提供了一个MEF框架用于开发支持插件的软件系统，幸运的是，Silverlight 4也支持MEF。这就使得我们可以很容易地实现以下的功能：用户在访问Silverlight应用程序时，开始可以只显示一个“初始的简单的”页面，当用户需要时，动态从Web网站上下载新的程序集，然后，Silverlight客户端应用程序再使用MEF将动态下载的程序集中所包容的页面组...</summary><published>2010-10-15T07:45:00Z</published><updated>2010-10-15T07:45:00Z</updated><author><name>王书奎(网名:无忌)</name><uri>http://www.cnblogs.com/6666/</uri></author><link rel="alternate" href="http://www.cnblogs.com/6666/archive/2010/10/15/1852288.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/6666/archive/2010/10/15/1852288.html"/><content type="html">&lt;p&gt;.NET 4.0中提供了一个&lt;span class="t_tag"&gt;MEF&lt;/span&gt;&lt;span class="t_tag"&gt;框架&lt;/span&gt;用于开发支持&lt;span class="t_tag"&gt;插件&lt;/span&gt;的软件系统，幸运的是，Silverlight 4也支持MEF。这就使得我们可以很容易地实现以下的功能：&lt;br /&gt;&lt;br /&gt;用户在访问Silverlight应用程序时，开始可以只显示一个&amp;ldquo;初始的简单的&amp;rdquo;页面，当用户需要时，动态从Web网站上下载新的程序集，然后，Silverlight客户端应用程序再使用MEF将动态下载的程序集中所包容的页面&lt;span class="t_tag"&gt;组件&lt;/span&gt;&amp;ldquo;组装&amp;rdquo;为一个新的功能增强了的页面。&lt;br /&gt;&lt;br /&gt;示例解决方案DynamicComposePage展示了相关的技术细节。下面简要介绍一下其开发步骤。&lt;br /&gt;&lt;br /&gt;1 使用Visual Studio 2010创建一个名为DynamicComposePage的 Silverlight Business Application项目。&lt;br /&gt;&lt;br /&gt;Visual Studio 2010将会帮助我们创建一个名为DynamicComposePage.Web的ASP.NET网站，它引用名为DynamicComposePage的Silverlight项目。&lt;br /&gt;&lt;br /&gt;在解决方案资源管理器中展开DynamicComposePage项目节点，在其Views文件夹下可以看到Visual Studio 2010生成的一个Home.xaml页面，等一会我们将修改此页面实现页面的动态装配。&lt;br /&gt;&lt;br /&gt;2 现在需要提供一个MEF部件都遵循的&lt;span class="t_tag"&gt;接口&lt;/span&gt;，为此，向解决方案中添加一个&amp;ldquo;Silverlight类库（Silverlight Class Library）&amp;rdquo; 项目[1]MyPartContract，并向其中添加一个IMyPart接口，为简单起见，本例不为此接口添加任何成员，当然，在实际开发中可以依据需要为其添加合适的成员。 &lt;/p&gt;&lt;div class="blockcode"&gt;&lt;div id="code54214_-1"&gt;&lt;ol&gt;&lt;li&gt;namespace MyPartContract&lt;/li&gt;&lt;li&gt;{&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public interface IMyPart&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/li&gt;&lt;li&gt;}&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;em&gt;复制代码&lt;/em&gt;&lt;/div&gt;&lt;p&gt;[1]&amp;nbsp; 注意：这不是普通的&amp;ldquo;类库&amp;rdquo;项目，Silverlight所使用的程序集是重新编写的，与标准的.NET Framework不一样。&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 3 下面定义可供动态组合的Silverlight页面组件。&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 向示例解决方案中添加一个名为&amp;ldquo;MyPageParts&amp;rdquo;的&amp;ldquo;Silverlight类库（Silverlight Class Library）&amp;rdquo; 项目，注意在弹出的对话框中选择&amp;ldquo;Silverlight 4&amp;rdquo;。&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 然后，向MyPageParts项目中添加一个&amp;ldquo;Silverlight User Control&amp;rdquo;，取名&amp;ldquo;MyEditorControl&amp;rdquo;，在这个页面中我们将放置一个RichTextArea&lt;span class="t_tag"&gt;控件&lt;/span&gt;充当文字编辑器： &lt;/p&gt;&lt;div class="blockcode"&gt;&lt;div id="code54214_0"&gt;&lt;ol&gt;&lt;li&gt;&amp;lt;UserControl x:Class="MyPageParts.MyEditor" &amp;hellip;&amp;hellip;&amp;gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;lt;RichTextArea x:Name="MyEditorControl" &amp;hellip;&amp;hellip; /&amp;gt;&lt;/li&gt;&lt;li&gt;&amp;lt;/UserControl&amp;gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;em&gt;复制代码&lt;/em&gt;&lt;/div&gt;&lt;p&gt;现在，需要让此用户控件可以被MEF动态装配，为此，需要完成两个步骤：&lt;br /&gt;&lt;br /&gt;（1）给本项目（也包括前面创建的Silverlight项目DynamicComposePage）都添加对包容了IMyPart接口的Silverlight类库MyPartContract的引用。&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; （2）给本项目（也包括前面创建的Silverlight项目DynamicComposePage）都添加对MEF核心程序集System.ComponentModel.Composition.dll的引用，将要负责完成&amp;ldquo;装配&amp;rdquo;工作的Silverligh项目DynamicComposePage还需要添加对另一个核心程序集System.ComponentModel.Composition.Initialization.dll的引用。&lt;br /&gt;&lt;br /&gt;附件: &lt;a class="pin5i_attach_a"&gt;Snap8.jpg &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 注意：&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 在以下位置才能找到上述程序集：&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; C:\Program Files\Microsoft SDKs\Silverlight\v4.0\Libraries&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 下面是支持MEF动态装配的Silverlight 4用户控件的相应代码，注意其中的&amp;ldquo;[Export]&amp;rdquo;标记： &lt;/p&gt;&lt;div class="blockcode"&gt;&lt;div id="code54214_1"&gt;&lt;ol&gt;&lt;li&gt;&amp;nbsp; [Export(typeof(IMyPart))]&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; public partial class MyEditor : UserControl,IMyPart&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; {&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public MyEditor()&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; InitializeComponent();&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; }&lt;/li&gt;&lt;li&gt;源码&lt;a href="http://cid-887e6220d1fad37c.office.live.com/self.aspx/silverlight/DynamicComposePage.rar"&gt;http://cid-887e6220d1fad37c.office.live.com/self.aspx/silverlight/DynamicComposePage.rar&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/6666/aggbug/1852288.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/6666/archive/2010/10/15/1852288.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
