﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-张子阳 TraceFact-随笔分类-Design &amp; Pattern</title><link>http://jimmyzhang.cnblogs.com/category/107373.html</link><description>Fire is the test of gold; adversity, of strong man.</description><language>zh-cn</language><lastBuildDate>Sun, 06 Jul 2008 16:37:24 GMT</lastBuildDate><pubDate>Sun, 06 Jul 2008 16:37:24 GMT</pubDate><ttl>60</ttl><item><title>重温Observer模式--热水器·改</title><link>http://www.cnblogs.com/JimmyZhang/archive/2008/06/18/1225061.html</link><dc:creator>Jimmy Zhang</dc:creator><author>Jimmy Zhang</author><pubDate>Wed, 18 Jun 2008 15:39:00 GMT</pubDate><guid>http://www.cnblogs.com/JimmyZhang/archive/2008/06/18/1225061.html</guid><wfw:comment>http://www.cnblogs.com/JimmyZhang/comments/1225061.html</wfw:comment><comments>http://www.cnblogs.com/JimmyZhang/archive/2008/06/18/1225061.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cnblogs.com/JimmyZhang/comments/commentRss/1225061.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/JimmyZhang/services/trackbacks/1225061.html</trackback:ping><description><![CDATA[摘要: 在 <a target='_blank' href="http://www.tracefact.net/CSharp-Programming/Delegates-and-Events-in-CSharp.aspx">C#中的委托和事件</A> 一文的后半部分，我向大家讲述了Observer(观察者)模式，并使用委托和事件实现了这个模式。实际上，不使用委托和事件，一样可以实现Observer模式。在本文中，我将使用GOF的经典方式，再次实现一遍Observer模式，同时将讲述在 <a target='_blank' href="http://www.tracefact.net/CSharp-Programming/Delegates-and-Events-in-CSharp.aspx">C#中的委托和事件</A> 一文中没有提及的推模式(Push)和拉模式(Pull)。&nbsp;&nbsp;<a href='http://www.cnblogs.com/JimmyZhang/archive/2008/06/18/1225061.html'>阅读全文</a><img src ="http://www.cnblogs.com/JimmyZhang/aggbug/1225061.html?type=1" width = "1" height = "1" />]]></description></item><item><title>MVP 模式实例解析</title><link>http://www.cnblogs.com/JimmyZhang/archive/2008/06/15/1222661.html</link><dc:creator>Jimmy Zhang</dc:creator><author>Jimmy Zhang</author><pubDate>Sun, 15 Jun 2008 09:48:00 GMT</pubDate><guid>http://www.cnblogs.com/JimmyZhang/archive/2008/06/15/1222661.html</guid><wfw:comment>http://www.cnblogs.com/JimmyZhang/comments/1222661.html</wfw:comment><comments>http://www.cnblogs.com/JimmyZhang/archive/2008/06/15/1222661.html#Feedback</comments><slash:comments>15</slash:comments><wfw:commentRss>http://www.cnblogs.com/JimmyZhang/comments/commentRss/1222661.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/JimmyZhang/services/trackbacks/1222661.html</trackback:ping><description><![CDATA[摘要: 在我 <a target='_blank' href="http://www.tracefact.net/Software-design/Model-View-Presenter-Pattern.aspx">模型－视图－提供器 模式</A> 这篇译文中，作者为了说明 MVP 的优点之一，<B>易测性</B>，引入了单元测试和NMock框架。可能有的朋友对这部分不够熟悉，也因为本人翻译水平有限，导致看后感觉不够明朗，所以我就补写了这篇文章，对作者给出的范例程序作了些许简化和整理，让我们一步步地来实现一个符合MVP模式的Web页面。&nbsp;&nbsp;<a href='http://www.cnblogs.com/JimmyZhang/archive/2008/06/15/1222661.html'>阅读全文</a><img src ="http://www.cnblogs.com/JimmyZhang/aggbug/1222661.html?type=1" width = "1" height = "1" />]]></description></item><item><title>[译]模型－视图－提供器 模式</title><link>http://www.cnblogs.com/JimmyZhang/archive/2008/06/15/1222660.html</link><dc:creator>Jimmy Zhang</dc:creator><author>Jimmy Zhang</author><pubDate>Sun, 15 Jun 2008 09:45:00 GMT</pubDate><guid>http://www.cnblogs.com/JimmyZhang/archive/2008/06/15/1222660.html</guid><wfw:comment>http://www.cnblogs.com/JimmyZhang/comments/1222660.html</wfw:comment><comments>http://www.cnblogs.com/JimmyZhang/archive/2008/06/15/1222660.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/JimmyZhang/comments/commentRss/1222660.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/JimmyZhang/services/trackbacks/1222660.html</trackback:ping><description><![CDATA[摘要: 模型-视图-提供器模式(MVP)是模型-视图-控制器(MVC)模式的一个改进，通过使用这个模式，可以将通常写于页面后置代码(CodeBehind)中的逻辑，委托给一个更易于测试的单独的提供器类中。 &nbsp;&nbsp;<a href='http://www.cnblogs.com/JimmyZhang/archive/2008/06/15/1222660.html'>阅读全文</a><img src ="http://www.cnblogs.com/JimmyZhang/aggbug/1222660.html?type=1" width = "1" height = "1" />]]></description></item><item><title>[译]开闭原则</title><link>http://www.cnblogs.com/JimmyZhang/archive/2008/05/30/1210999.html</link><dc:creator>Jimmy Zhang</dc:creator><author>Jimmy Zhang</author><pubDate>Fri, 30 May 2008 15:36:00 GMT</pubDate><guid>http://www.cnblogs.com/JimmyZhang/archive/2008/05/30/1210999.html</guid><wfw:comment>http://www.cnblogs.com/JimmyZhang/comments/1210999.html</wfw:comment><comments>http://www.cnblogs.com/JimmyZhang/archive/2008/05/30/1210999.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/JimmyZhang/comments/commentRss/1210999.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/JimmyZhang/services/trackbacks/1210999.html</trackback:ping><description><![CDATA[摘要: 在这篇文章中，Jeremy Miller向我们讲述了软件设计中的开闭原则，以及相关的 单一责任原则、责任链模式、双重分发 以及 Liskov 替换原则。&nbsp;&nbsp;<a href='http://www.cnblogs.com/JimmyZhang/archive/2008/05/30/1210999.html'>阅读全文</a><img src ="http://www.cnblogs.com/JimmyZhang/aggbug/1210999.html?type=1" width = "1" height = "1" />]]></description></item><item><title>[记]SAF 中缓存服务的实现</title><link>http://www.cnblogs.com/JimmyZhang/archive/2008/05/30/1210377.html</link><dc:creator>Jimmy Zhang</dc:creator><author>Jimmy Zhang</author><pubDate>Thu, 29 May 2008 16:31:00 GMT</pubDate><guid>http://www.cnblogs.com/JimmyZhang/archive/2008/05/30/1210377.html</guid><wfw:comment>http://www.cnblogs.com/JimmyZhang/comments/1210377.html</wfw:comment><comments>http://www.cnblogs.com/JimmyZhang/archive/2008/05/30/1210377.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/JimmyZhang/comments/commentRss/1210377.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/JimmyZhang/services/trackbacks/1210377.html</trackback:ping><description><![CDATA[摘要: 本文是《Developing Application Frameworks in .NET》的读书笔记。SAF 是书中的一个范例框架，意为 Simple Application Framework(简单应用程序框架)，通过这篇文章，我主要想向大家说明 SAF 中缓存服务的实现方式。 &nbsp;&nbsp;<a href='http://www.cnblogs.com/JimmyZhang/archive/2008/05/30/1210377.html'>阅读全文</a><img src ="http://www.cnblogs.com/JimmyZhang/aggbug/1210377.html?type=1" width = "1" height = "1" />]]></description></item><item><title>自反+递归 实现评论的无限引用</title><link>http://www.cnblogs.com/JimmyZhang/archive/2008/03/24/1120428.html</link><dc:creator>Jimmy Zhang</dc:creator><author>Jimmy Zhang</author><pubDate>Mon, 24 Mar 2008 15:08:00 GMT</pubDate><guid>http://www.cnblogs.com/JimmyZhang/archive/2008/03/24/1120428.html</guid><wfw:comment>http://www.cnblogs.com/JimmyZhang/comments/1120428.html</wfw:comment><comments>http://www.cnblogs.com/JimmyZhang/archive/2008/03/24/1120428.html#Feedback</comments><slash:comments>42</slash:comments><wfw:commentRss>http://www.cnblogs.com/JimmyZhang/comments/commentRss/1120428.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/JimmyZhang/services/trackbacks/1120428.html</trackback:ping><description><![CDATA[摘要: 大家每天都在看博客，发表评论，实现一个评论系统也是一名Web开发者的基本要求。虽然评论只是一个很普通的功能，但是实现评论的引用，尤其是无限引用，却有一定的困难。身为“网易工程队”的正规军，同时又作为一名程序开发人员，有必要向大家展示一下“盖楼”的方法。&nbsp;&nbsp;<a href='http://www.cnblogs.com/JimmyZhang/archive/2008/03/24/1120428.html'>阅读全文</a><img src ="http://www.cnblogs.com/JimmyZhang/aggbug/1120428.html?type=1" width = "1" height = "1" />]]></description></item><item><title>基于业务对象(列表)的排序</title><link>http://www.cnblogs.com/JimmyZhang/archive/2008/03/18/1110710.html</link><dc:creator>Jimmy Zhang</dc:creator><author>Jimmy Zhang</author><pubDate>Mon, 17 Mar 2008 19:33:00 GMT</pubDate><guid>http://www.cnblogs.com/JimmyZhang/archive/2008/03/18/1110710.html</guid><wfw:comment>http://www.cnblogs.com/JimmyZhang/comments/1110710.html</wfw:comment><comments>http://www.cnblogs.com/JimmyZhang/archive/2008/03/18/1110710.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/JimmyZhang/comments/commentRss/1110710.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/JimmyZhang/services/trackbacks/1110710.html</trackback:ping><description><![CDATA[摘要: 本文是《基于业务对象的筛选》的姐妹篇，在本文中，我详细讨论了IComparable和IComparer接口，并通过实现这两个接口，实现了列表的默认排序、单一属性排序、多属性组合排序。 &nbsp;&nbsp;<a href='http://www.cnblogs.com/JimmyZhang/archive/2008/03/18/1110710.html'>阅读全文</a><img src ="http://www.cnblogs.com/JimmyZhang/aggbug/1110710.html?type=1" width = "1" height = "1" />]]></description></item><item><title>基于业务对象(列表)的筛选</title><link>http://www.cnblogs.com/JimmyZhang/archive/2008/03/18/1110708.html</link><dc:creator>Jimmy Zhang</dc:creator><author>Jimmy Zhang</author><pubDate>Mon, 17 Mar 2008 18:53:00 GMT</pubDate><guid>http://www.cnblogs.com/JimmyZhang/archive/2008/03/18/1110708.html</guid><wfw:comment>http://www.cnblogs.com/JimmyZhang/comments/1110708.html</wfw:comment><comments>http://www.cnblogs.com/JimmyZhang/archive/2008/03/18/1110708.html#Feedback</comments><slash:comments>10</slash:comments><wfw:commentRss>http://www.cnblogs.com/JimmyZhang/comments/commentRss/1110708.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/JimmyZhang/services/trackbacks/1110708.html</trackback:ping><description><![CDATA[摘要: 在这篇文章中我先提出了一些开发人员的思维定势：将操作交给数据库去完成。演示了“传统方式的”使用拼装SQL语句完成筛选，以及如何配合缓存来实现基于业务对象(列表)的筛选。 &nbsp;&nbsp;<a href='http://www.cnblogs.com/JimmyZhang/archive/2008/03/18/1110708.html'>阅读全文</a><img src ="http://www.cnblogs.com/JimmyZhang/aggbug/1110708.html?type=1" width = "1" height = "1" />]]></description></item><item><title>Command 模式 Step by Step</title><link>http://www.cnblogs.com/JimmyZhang/archive/2007/12/20/1006555.html</link><dc:creator>Jimmy Zhang</dc:creator><author>Jimmy Zhang</author><pubDate>Thu, 20 Dec 2007 00:17:00 GMT</pubDate><guid>http://www.cnblogs.com/JimmyZhang/archive/2007/12/20/1006555.html</guid><wfw:comment>http://www.cnblogs.com/JimmyZhang/comments/1006555.html</wfw:comment><comments>http://www.cnblogs.com/JimmyZhang/archive/2007/12/20/1006555.html#Feedback</comments><slash:comments>17</slash:comments><wfw:commentRss>http://www.cnblogs.com/JimmyZhang/comments/commentRss/1006555.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/JimmyZhang/services/trackbacks/1006555.html</trackback:ping><description><![CDATA[摘要: 提起Command模式，我想没有什么比一个遥控器的例子更能说明问题了，本文将对Command模式作以简单介绍，我们通过完成这个范例来一步步实现GOF的Command模式。&nbsp;&nbsp;<a href='http://www.cnblogs.com/JimmyZhang/archive/2007/12/20/1006555.html'>阅读全文</a><img src ="http://www.cnblogs.com/JimmyZhang/aggbug/1006555.html?type=1" width = "1" height = "1" />]]></description></item><item><title>奇幻RPG(物品锻造 与 Decorator模式)</title><link>http://www.cnblogs.com/JimmyZhang/archive/2007/12/14/Decorator.html</link><dc:creator>Jimmy Zhang</dc:creator><author>Jimmy Zhang</author><pubDate>Fri, 14 Dec 2007 00:26:00 GMT</pubDate><guid>http://www.cnblogs.com/JimmyZhang/archive/2007/12/14/Decorator.html</guid><wfw:comment>http://www.cnblogs.com/JimmyZhang/comments/994357.html</wfw:comment><comments>http://www.cnblogs.com/JimmyZhang/archive/2007/12/14/Decorator.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/JimmyZhang/comments/commentRss/994357.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/JimmyZhang/services/trackbacks/994357.html</trackback:ping><description><![CDATA[摘要: 本文中，我们通过一个常见的给武器(对象)添加宝石(获得额外的状态和行为)的例子，讨论了Decorator设计模式的实现过程。&nbsp;&nbsp;<a href='http://www.cnblogs.com/JimmyZhang/archive/2007/12/14/Decorator.html'>阅读全文</a><img src ="http://www.cnblogs.com/JimmyZhang/aggbug/994357.html?type=1" width = "1" height = "1" />]]></description></item><item><title>奇幻RPG(人物构建 与 Abstract Factory模式)</title><link>http://www.cnblogs.com/JimmyZhang/archive/2007/12/11/991512.html</link><dc:creator>Jimmy Zhang</dc:creator><author>Jimmy Zhang</author><pubDate>Tue, 11 Dec 2007 15:52:00 GMT</pubDate><guid>http://www.cnblogs.com/JimmyZhang/archive/2007/12/11/991512.html</guid><wfw:comment>http://www.cnblogs.com/JimmyZhang/comments/991512.html</wfw:comment><comments>http://www.cnblogs.com/JimmyZhang/archive/2007/12/11/991512.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cnblogs.com/JimmyZhang/comments/commentRss/991512.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/JimmyZhang/services/trackbacks/991512.html</trackback:ping><description><![CDATA[摘要: 本文中我们通过一个人物外形构建的范例，一步步学习了Abstract Factory抽象工厂模式的实现。&nbsp;&nbsp;<a href='http://www.cnblogs.com/JimmyZhang/archive/2007/12/11/991512.html'>阅读全文</a><img src ="http://www.cnblogs.com/JimmyZhang/aggbug/991512.html?type=1" width = "1" height = "1" />]]></description></item><item><title>奇幻RPG(角色技能 与 Strategy模式)</title><link>http://www.cnblogs.com/JimmyZhang/archive/2007/12/09/988459.html</link><dc:creator>Jimmy Zhang</dc:creator><author>Jimmy Zhang</author><pubDate>Sun, 09 Dec 2007 09:12:00 GMT</pubDate><guid>http://www.cnblogs.com/JimmyZhang/archive/2007/12/09/988459.html</guid><wfw:comment>http://www.cnblogs.com/JimmyZhang/comments/988459.html</wfw:comment><comments>http://www.cnblogs.com/JimmyZhang/archive/2007/12/09/988459.html#Feedback</comments><slash:comments>13</slash:comments><wfw:commentRss>http://www.cnblogs.com/JimmyZhang/comments/commentRss/988459.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/JimmyZhang/services/trackbacks/988459.html</trackback:ping><description><![CDATA[摘要: 在本文中，我们将以一款欧美风格的奇幻角色扮演游戏为背景，通过游戏中角色技能的实现来展示GOF的Strategy设计模式。&nbsp;&nbsp;<a href='http://www.cnblogs.com/JimmyZhang/archive/2007/12/09/988459.html'>阅读全文</a><img src ="http://www.cnblogs.com/JimmyZhang/aggbug/988459.html?type=1" width = "1" height = "1" />]]></description></item><item><title>对象关系映射(理论基础) - Part.1</title><link>http://www.cnblogs.com/JimmyZhang/archive/2007/10/03/913337.html</link><dc:creator>Jimmy Zhang</dc:creator><author>Jimmy Zhang</author><pubDate>Wed, 03 Oct 2007 04:11:00 GMT</pubDate><guid>http://www.cnblogs.com/JimmyZhang/archive/2007/10/03/913337.html</guid><wfw:comment>http://www.cnblogs.com/JimmyZhang/comments/913337.html</wfw:comment><comments>http://www.cnblogs.com/JimmyZhang/archive/2007/10/03/913337.html#Feedback</comments><slash:comments>15</slash:comments><wfw:commentRss>http://www.cnblogs.com/JimmyZhang/comments/commentRss/913337.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/JimmyZhang/services/trackbacks/913337.html</trackback:ping><description><![CDATA[摘要: 作为本系列的第一篇文章，我主要向大家介绍了对象关系映射的一些预备知识和基础概念。主要包括：一对一关系、面向对象基础、关系基础 并对 对象与关系之间存在的差异作了简要的讨论。&nbsp;&nbsp;<a href='http://www.cnblogs.com/JimmyZhang/archive/2007/10/03/913337.html'>阅读全文</a><img src ="http://www.cnblogs.com/JimmyZhang/aggbug/913337.html?type=1" width = "1" height = "1" />]]></description></item><item><title>[译]五层逻辑构架设计</title><link>http://www.cnblogs.com/JimmyZhang/archive/2007/08/04/842610.html</link><dc:creator>Jimmy Zhang</dc:creator><author>Jimmy Zhang</author><pubDate>Sat, 04 Aug 2007 01:31:00 GMT</pubDate><guid>http://www.cnblogs.com/JimmyZhang/archive/2007/08/04/842610.html</guid><wfw:comment>http://www.cnblogs.com/JimmyZhang/comments/842610.html</wfw:comment><comments>http://www.cnblogs.com/JimmyZhang/archive/2007/08/04/842610.html#Feedback</comments><slash:comments>32</slash:comments><wfw:commentRss>http://www.cnblogs.com/JimmyZhang/comments/commentRss/842610.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/JimmyZhang/services/trackbacks/842610.html</trackback:ping><description><![CDATA[摘要: 这篇文章摘自 《EXPERT C# 2005 BUSINESS OBJECTS》一书的第一章，作者是 Rockford hotka 。翻译这篇文章的时候，这本书的中文版还没有面世，个人觉得这篇文章写得不错，就将它翻译了，希望能对你有所帮助。&nbsp;&nbsp;<a href='http://www.cnblogs.com/JimmyZhang/archive/2007/08/04/842610.html'>阅读全文</a><img src ="http://www.cnblogs.com/JimmyZhang/aggbug/842610.html?type=1" width = "1" height = "1" />]]></description></item></channel></rss>