<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl" href="rss.xsl" media="screen"?>
<rss version="2.0">
  <channel>
    <title>星辰.Net技术社区论坛 - 设计模式GOF</title>
    <link>http://www.netcsharp.cn/showforum-27.aspx</link>
    <description>Latest 20 threads</description>
    <copyright>Copyright (c) 星辰.Net技术社区论坛</copyright>
    <generator>Discuz!NT</generator>
    <pubDate>Fri, 21 Nov 2008 18:59:08 GMT</pubDate>
    <ttl>60</ttl>
    <item>
      <title>C#通过INotifyPropertyChanged 实现观察者模式</title>
      <description><![CDATA[普通观察者模式存在的问题
我们都知道观察者模式的优点，可以在属性发生改变时，来监听一个实现好了的事件，这样可以帮助来异步处理许多的事情，可是在观察者模式中，一般都是针对于实体来进行封装操作，可大多数的监听过程就需要写在实体的内部了，这样大大影响了实体封装的原子性，如果想实现什么监听事件，都需要在实体层进行更改，这另人太不悦了```
不过，可以通过代理的方式，让实体里面监听的时候执行这个代理就好]]></description>
      <link>http://www.netcsharp.cn/showtopic-1651.aspx</link>
      <category>设计模式GOF</category>
      <author>蝈蝈俊.net</author>
      <pubDate>Tue, 04 Nov 2008 23:36:00 GMT</pubDate>
    </item>
    <item>
      <title>C#设计模式--职责链模式（Chain of Responsibility）</title>
      <description><![CDATA[一、 职责链（Chain of Responsibility）模式 责任链模式是一种对象的行为模式【GOF95】。在责任链模式里，很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递，直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求，这使得系统可以在不影响客户端的情况下动态地重新组织链和分配责任。
 从击鼓传花谈起
 击鼓传]]></description>
      <link>http://www.netcsharp.cn/showtopic-1519.aspx</link>
      <category>设计模式GOF</category>
      <author>admin</author>
      <pubDate>Mon, 06 Oct 2008 09:35:00 GMT</pubDate>
    </item>
    <item>
      <title>你学会测试了吗(2)：测试语法之属性介绍</title>
      <description><![CDATA[属性TestDriven.NET支持多种单元测试框架，像NUnit，MbUnit，MS Team System，这里我选择了最为经典的NUnit单元测试框架来介绍TestDriven.NET所支持的一些重要的属性。TestDriven.NET其实已经支持大部分NUnit的属性，但是有些属性现在还不支持。
在我们使用TestDriven.NET测试前，项目必须引用框架的程序集，即nunit.fra]]></description>
      <link>http://www.netcsharp.cn/showtopic-1406.aspx</link>
      <category>设计模式GOF</category>
      <author>admin</author>
      <pubDate>Tue, 09 Sep 2008 12:32:00 GMT</pubDate>
    </item>
    <item>
      <title>你学会测试了吗(1)：推荐工具</title>
      <description><![CDATA[前言一个典型的软件项目中最为重要的两种测试类型，即程序员和用户的测试，称为“单元测试”和“验收测试”。在开发任何种类的企业或大型应用时都不容忽视，如果没有合适的工具作为支持，单元测试工作量非常巨大了。
测试驱动开发（Test Driven Development，TDD）技术是在添加新代码之前让你的测试代码出错的一种开发技术。在开始编写代码之前首先要写你的测试代码，然后再编写代码让你的测试通过。]]></description>
      <link>http://www.netcsharp.cn/showtopic-1395.aspx</link>
      <category>设计模式GOF</category>
      <author>admin</author>
      <pubDate>Mon, 08 Sep 2008 10:01:00 GMT</pubDate>
    </item>
    <item>
      <title>C#使用Null Object设计模式</title>
      <description><![CDATA[在ESFramework的设计实现中，很多地方都用到了Null Object设计模式。Null Object模式的含义在于，提供一个对象给指定的类型，用以代替这个对象为空的情况。 Null Object提供了“什么也不做”的行为,隐藏来自它的合作者的细节。
   对于如何理解和应用该模式，通过一个实例就能很好的进行说明。这一节我们在讨论消息分派器，消息分派器使用了前述的日志记录器，并且通过属性来]]></description>
      <link>http://www.netcsharp.cn/showtopic-1391.aspx</link>
      <category>设计模式GOF</category>
      <author>admin</author>
      <pubDate>Sat, 06 Sep 2008 23:08:00 GMT</pubDate>
    </item>
    <item>
      <title>策略模式的应用实践</title>
      <description><![CDATA[我的工作需要写一个话单转换工具，在写这个工具的过程中，发现整个实现恰恰可以说是策略模式最好的体现。也许用这个例子来说明策略模式的应用，最是合适。该话单转换工具的目的，是将某个服务提供商的话单文本文件，转换为另一个服务提供商的话单文本文件。如将联通的话单格式转换为移动的话单格式。而话单转换工具的要求，是希望能实现多个服务提供商话单文本文件的互相转换。
我们来分析一下任务。首先，各种服务提供商的话单]]></description>
      <link>http://www.netcsharp.cn/showtopic-1377.aspx</link>
      <category>设计模式GOF</category>
      <author>admin</author>
      <pubDate>Wed, 03 Sep 2008 19:22:00 GMT</pubDate>
    </item>
    <item>
      <title>IoC 容器和Dependency Injection 模式（中文版）</title>
      <description><![CDATA[在企业级Java 的世界里存在一个有趣的现象：有很多人投入很多精力来研究主流J2EE技术的替代品——自然，这大多发生在open source 社群。在很大程度上，这可以看作是开发者对主流J2EE技术的笨重和复杂作出的回应，但其中的确有很多极富创意的想法，的确提供了一些可供选择的方案。J2EE开发者常遇到的一个问题就是如何组装不同的程序元素：如果web控制器体系结构和数据库接口是由不同的团队所开发的]]></description>
      <link>http://www.netcsharp.cn/showtopic-1361.aspx</link>
      <category>设计模式GOF</category>
      <author>admin</author>
      <pubDate>Mon, 01 Sep 2008 23:02:00 GMT</pubDate>
    </item>
    <item>
      <title>PetShop之业务逻辑层设计</title>
      <description><![CDATA[业务逻辑层（Business LogicLayer）无疑是系统架构中体现核心价值的部分。它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计，也即是说它是与系统所应对的领域（Domain）逻辑有关，很多时候，我们也将业务逻辑层称为领域层。例如Martin Fowler在《Patterns ofEnterprise ApplicationArchitecture》一书中，将整]]></description>
      <link>http://www.netcsharp.cn/showtopic-1323.aspx</link>
      <category>设计模式GOF</category>
      <author>admin</author>
      <pubDate>Sun, 24 Aug 2008 16:47:00 GMT</pubDate>
    </item>
    <item>
      <title>领域驱动设计 Domain-Driven Design</title>
      <description><![CDATA[Part I: Putting the Domain Model to Work
   领域驱动讲求将领域模型作为领域专家、分析人员、开发人员之间交流沟通的核心。传统的瀑布模型方式下，缺乏有效的反馈机制，在链路上领域知识以不同的表现形式进行传递，知识的丢失容易造成需求与实现之间的断层。传统的迭代方式下，软件产品的优秀程度取决于开发者对领域知识的兴趣和掌握程度。

Chapter One. C]]></description>
      <link>http://www.netcsharp.cn/showtopic-1319.aspx</link>
      <category>设计模式GOF</category>
      <author>admin</author>
      <pubDate>Sun, 24 Aug 2008 15:04:00 GMT</pubDate>
    </item>
    <item>
      <title>敏捷软件开发模型--SCRUM</title>
      <description><![CDATA[一 什么是Scrum?

Scrum (英式橄榄球争球队), 软件开发模型是敏捷开发的一种，在最近的一两年内逐渐流行起来。

Scrum的基本假设是：

开发软件就像开发新产品，无法一开始就能定义软件产品最终的规程，过程中需要研发、创意、尝试错误，所以没有一种固定的流程可以保证专案成功。Scrum将软件开发团队比拟成橄榄球队，有明确的最高目标，熟悉开发流程中所需具备的最佳典范与技术，具]]></description>
      <link>http://www.netcsharp.cn/showtopic-1310.aspx</link>
      <category>设计模式GOF</category>
      <author>star65225692</author>
      <pubDate>Fri, 22 Aug 2008 12:07:00 GMT</pubDate>
    </item>
    <item>
      <title>代码重构技巧:Pull Up Method(函数上移)</title>
      <description><![CDATA[一.适用环境


    有些函数,在各个子类(subclass)中产生完全相同的结果.

 
二.解决方案
    将该函数移至父类(superclass).

 
三.动机
    避免行为重复是重要的,因为重复很可能会成为错误的滋生地.只......]]></description>
      <link>http://www.netcsharp.cn/showtopic-1293.aspx</link>
      <category>设计模式GOF</category>
      <author>admin</author>
      <pubDate>Sat, 16 Aug 2008 19:12:00 GMT</pubDate>
    </item>
    <item>
      <title>Model View Presenter (MVP)模式接触</title>
      <description><![CDATA[需求是这样的：
利用mvp模式做个 Asp.net 和 Windows Forms 都可以运行的Demo
抽空做了一下，也不知道我个人理解的是否正确、反正demo 已经做了
以我个人的理解，MVP主要就是要实现 界面和后台业务的完全隔离。
把原来 View 要做的事情的都交给 Presenter 尽量做到最大化的分离
先看运行效果
http://www.cnblogs.com/imag]]></description>
      <link>http://www.netcsharp.cn/showtopic-1218.aspx</link>
      <category>设计模式GOF</category>
      <author>admin</author>
      <pubDate>Fri, 11 Jul 2008 15:26:00 GMT</pubDate>
    </item>
    <item>
      <title>使用扩展方法和静态门面类实现伪领域对象</title>
      <description><![CDATA[背景介绍领域对象，在此特指充血的领域对象模型，在解决什么是伪领域对象之前，需要事先解释何为充血的领域对象。在此后的介绍中，假设我们存在对象模型Employee—Department。
在面向对象的实体类建模的发展历史上，有着2家分歧，其中部分人认为实体类应保证本身的纯洁性，只需维护数据，而无需知道数据的来源以及数据的查询方法，这被称为“贫血”模型，在此模型下，一个Department的表示如下c]]></description>
      <link>http://www.netcsharp.cn/showtopic-1207.aspx</link>
      <category>设计模式GOF</category>
      <author>admin</author>
      <pubDate>Wed, 09 Jul 2008 21:47:00 GMT</pubDate>
    </item>
    <item>
      <title>Double Dispatch And Visitor Pattern</title>
      <description><![CDATA[1： Override VS. Overload



多态可以说是面向对象世界中一件锋利的武器， 封装变化是它的能力的体现。但是你听说过几种多态？
Simple Polymorphism ：the object whose method is called is decided run-time.
    multi- polymorphism ：the object which m]]></description>
      <link>http://www.netcsharp.cn/showtopic-1169.aspx</link>
      <category>设计模式GOF</category>
      <author>admin</author>
      <pubDate>Thu, 26 Jun 2008 15:04:00 GMT</pubDate>
    </item>
    <item>
      <title>提高软件开发效率----利用CMP模式</title>
      <description><![CDATA[“我们通常将体系结构看作一系列服务的集合，用来执行其他代码，这些服务应当提供有效的功能和特性来完成一些特定目标。”建立体系结构时必须牢记几个目标
1.
尽量创建可重用的代码
2.
加强设计模式和最佳实践
3.
提供通用功能
4.
提供开发基础
了解了设计体系结构的目标后，还应该明确体系结构应该提供的服务，在深入讨论之前建议大家先研究一下IbuySpy,Nile,Pet Shop等]]></description>
      <link>http://www.netcsharp.cn/showtopic-1151.aspx</link>
      <category>设计模式GOF</category>
      <author>neptune</author>
      <pubDate>Sun, 22 Jun 2008 14:11:00 GMT</pubDate>
    </item>
    <item>
      <title>ObjectBuilder模式浅析</title>
      <description><![CDATA[一、在分析之前，先把Strategy模式和Chain of Resposibility模式做一下简单介绍。
Strategy模式：策略模式的用意是针对一组算法，将每一个算法封装到具有共同接口的独立的类中，从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。策略模式是对算法的包装，是把使用算法的责任和算法本身分割开，委派给不同的对象管理。策略模式通常把一个系列的算法包装]]></description>
      <link>http://www.netcsharp.cn/showtopic-1140.aspx</link>
      <category>设计模式GOF</category>
      <author>neptune</author>
      <pubDate>Sat, 21 Jun 2008 10:32:00 GMT</pubDate>
    </item>
    <item>
      <title>ASP.NET2.0 Provider模型(上)——原理、模型与分析</title>
      <description><![CDATA[摘要
“Provider”这个名词对于研究ASP.NET2.0的朋友来讲可谓是”司空见惯”了，地球人都知道ASP.NET2.0的MemberShip（成员资格管理）、SiteMapPath(站点地图)、个性化等新特性都是基于Provider模型构建的。正因如此，对Provider模型的解理与熟悉直接影响着好些ASP.NET2.0新特性的运用。又因为关于Provider模型方面的资料(特别是中文的]]></description>
      <link>http://www.netcsharp.cn/showtopic-1139.aspx</link>
      <category>设计模式GOF</category>
      <author>admin</author>
      <pubDate>Sat, 21 Jun 2008 10:08:00 GMT</pubDate>
    </item>
    <item>
      <title>Coroutine(协程) 模式与“控制”和“行为”的代码复用</title>
      <description><![CDATA[概念协程(Coroutine)这个概念最早是Melvin Conway在1963年提出的，是并发运算中的概念，指两个子过程通过相互协作完成某个任务，用它可以实现协作式多任务，协程(coroutine)技术本质上是一种程序控制机制。比如，消费者/生产者，你走几步，我走几步；下棋对弈，你一步我一步。
Coroutine(协程)可以分为：
非对称式(asymmetric)协程，或称半对称式(semi]]></description>
      <link>http://www.netcsharp.cn/showtopic-1123.aspx</link>
      <category>设计模式GOF</category>
      <author>star65225692</author>
      <pubDate>Wed, 18 Jun 2008 13:44:00 GMT</pubDate>
    </item>
    <item>
      <title>.Net中的依赖注入模式</title>
      <description><![CDATA[其实我们对依赖注入并不陌生，你一直都在不自觉地使用它，无论是ASP.NET还是WinForm的应用，都要用到System.ComponentModel命名空间中的类，如果你比较细心或者你设计过定制控件，你一定注意到IComponent这个接口或者Component这个类，还有IContainer和Container等类，它们的设计就是使用了依赖注入模式。如果你愿意的话，下面我们来写一个小程序，看看]]></description>
      <link>http://www.netcsharp.cn/showtopic-1113.aspx</link>
      <category>设计模式GOF</category>
      <author>star65225692</author>
      <pubDate>Tue, 17 Jun 2008 11:06:00 GMT</pubDate>
    </item>
    <item>
      <title>用State模式建立向导的实践</title>
      <description><![CDATA[向导就是类似于安装软件时，一大堆下一步的那个窗体。每一个上一步下一步意味着窗体上的控件需要改变，相关的按钮的功能等也需要改变。在制作一个向导时，最初设计中，我用的enum来表示每一个步骤。比如：
switch(stepEnum)
{
case StepEnum.FirstStep:
  //some work
  break;
case StepEnum.SecondStep:
  ]]></description>
      <link>http://www.netcsharp.cn/showtopic-1106.aspx</link>
      <category>设计模式GOF</category>
      <author>neptune</author>
      <pubDate>Mon, 16 Jun 2008 18:53:00 GMT</pubDate>
    </item>
  </channel>
</rss>