摘要: using System;using System.Text;using System.Collections.Generic;namespace 观察者模式{ /* * 观察者模式意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。 * 观察者模式实现要点:1、需要在状态对象通知者建立容器,管理被通知对象 * 2、实现对容器进行管理 * 3、实现核心的更新方法 * ... 阅读全文
posted @ 2011-03-22 22:35 日月之明 阅读(299) 评论(0) 推荐(0) 编辑
摘要: using System;using System.Collections.Generic;using System.Text;using System.Collections;namespace 访问者模式{ /* * 访问模式意图:表示一个作用于某对象结构中的各个元素的操作。它可以在不改变各元素的类的前提下定义作用于这些元素的新的操作。 * * 访问模式实现要点:1、通过一个稳定的管理容器管理所要访问的元素 * * 访问者模式适用场景:1、当有一个效果上的密封类层次 * ... 阅读全文
posted @ 2011-03-22 22:34 日月之明 阅读(212) 评论(0) 推荐(0) 编辑
摘要: using System;using System.Text;using System.Collections.Generic;using System.Collections;namespace 迭代模式{ /* * 迭代模式意图:提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。 * * 迭代模式实现要点:1、迭代抽象:访问一个聚合对象的内容而无需暴露它的内部表示。 * 2、迭代多态:为遍历不同的集合结构提供一个统一的接口,从而支持同样的算法在不同的集合结构上进行 * ... 阅读全文
posted @ 2011-03-22 22:32 日月之明 阅读(273) 评论(0) 推荐(0) 编辑
摘要: using System;using System.Text;using System.Collections.Generic;namespace 策略模式{ /* * 策略模式意图:定义一系列算法,把它们一个个封装起来,并且使它们可互相替换。该模式使得算法可独立于使用它的客户而变化。 * * 策略模式实现要点:1、策略调用类中一般会包含一条或几条if或switch 语句,在这些语句中实现具体策略的调用 * 2、使用扩展方法,可以直接定义新的策略,而不依赖原来所支持的类 * ... 阅读全文
posted @ 2011-03-22 22:31 日月之明 阅读(252) 评论(0) 推荐(0) 编辑
摘要: using System;using System.Text;using System.Collections.Generic;namespace 备忘录模式{ /* * 备忘录模式意图:用一个中介者对象将一些列对象交互封装,从而降低这些对象间的耦合性并且可以独立地改变对象间的交互关系 */ ///<summary> /// ///</summary>publicclass Originator { privatestring state; publicstring State { ... 阅读全文
posted @ 2011-03-22 22:29 日月之明 阅读(1256) 评论(3) 推荐(0) 编辑
摘要: using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 原型模式{ /* * 原型模式意图:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 * 原型模式实现要点:1、使用原型管理器,体现在一个系统中原型数目不固定时,可以动态的创建和销毁 * 2、实现克隆操作,在.NET中可以使用Object类的MemberwiseClone()方法来实现对象的浅表拷贝或通过序列化的方式来实现深拷贝。 ... 阅读全文
posted @ 2011-03-04 22:58 日月之明 阅读(336) 评论(0) 推荐(0) 编辑
摘要: using System;using System.Text;using System.Collections.Generic;using System.Linq;namespace 建造者模式{ /* * 建造者模式意图:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 * * 建造者模式优点:1、建造者模式的使用使得产品内部表象可以独立的变化,使客户端不必知道产品内部组成细节。 * 2、每一个Builder都相对独立,而与其它的Builder无关。 * ... 阅读全文
posted @ 2011-03-04 22:57 日月之明 阅读(301) 评论(0) 推荐(0) 编辑
摘要: using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 抽象工厂模式{ /* * 抽象工厂模式的意图:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 * 抽象工厂模式的实现技巧:1、将抽象工厂建产品对象的创建延迟到它的具体工厂子类。 * 2、如果没有应对“多系列对象的”需求变化,则没有必要使用抽象工厂,这是使用简单的静态工厂就可以胜任了。 * ... 阅读全文
posted @ 2011-03-04 22:57 日月之明 阅读(398) 评论(0) 推荐(0) 编辑
摘要: using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 简单工厂模式{ public class SimpleFactory { //将此函数改为静态的则变为了静态工厂方法 public IProduct CreateProduct(string productName) { switch (productName) { cas... 阅读全文
posted @ 2011-03-04 22:56 日月之明 阅读(333) 评论(0) 推荐(0) 编辑
摘要: using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 工厂方法模式{ /* * 工厂方法模式意图:定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法是一个类的实例化延迟到其子类 * 工厂方法模式实现要点:1、工厂模式有两种情况:一是Creator类是一个抽象类且它不提供它所声明的工厂方法的实现; * 二是Creator是一个具体类,且它... 阅读全文
posted @ 2011-03-04 22:55 日月之明 阅读(480) 评论(0) 推荐(1) 编辑