pursuedream
成功=水平+业务+沟通+判断

文章分类 -  设计模式

适配器模式
摘要:适配器适配器要实现某一接口,也要实现某一类情况下使用。建立一个类,它继承该接口,继承一个类。使用情况1.系统需要使用现有的类,而此类的接口不符合系统的需要。 public interface Itarget { void request(); } public class Adapatee { public void Specific() ... 阅读全文
posted @ 2007-06-25 15:23 pursuedream
责任链模式
摘要:责任链模式很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织链和分配责任。击鼓传花是一种热闹而又紧张的饮酒游戏。在酒宴上宾客依次坐定位置,由一人击鼓,击鼓的地方与传花的地方是分开的,以示公正。开始击鼓时,花束就开始依次传递,鼓... 阅读全文
posted @ 2007-06-25 15:23 pursuedream
访问者模式
摘要:访问者模式目的是封装一些施加于某种数据结构元素之上的操作。一旦这些操作需要修改的话,接受这个操作的数据结构则可以保持不变。问题提出System.Collection命名空间下提供了大量集合操作对象。但大多数情况下处理的都是同类对象的聚集。换言之,在聚集上采取的操作都是一些针对同类型对象的同类操作。但是如果针对一个保存有不同类型对象的聚集采取某种操作该怎么办呢?粗看上去,这似乎不是什么难题。可是如果... 阅读全文
posted @ 2007-06-25 15:23 pursuedream
观察者模式
摘要:观察者模式通过外部的变化,使自己能够很快得到反馈信息,好比股票投资者对股票的变动。观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。 //观察者 public abstract class Observer { public abstract void Upda... 阅读全文
posted @ 2007-06-25 15:22 pursuedream
装饰(Decorator)模式
摘要:Facade模式注重简化接口,Adapter模式注重转化接口,Bridge模式注重分离接口(抽现)与其实现,Decorator模式注重稳定接口的前提下为对象扩展功能。装饰(Decorator)模式过度地使用了继承来扩展对象的功能是引起要使用装饰模式。Decorator实现了运行时动态的扩展对象功能的能力,而且可以根据需要扩展多个功能,避免使用进程带来的灵活和多子类问题。Decorator类在接口上... 阅读全文
posted @ 2007-06-25 15:22 pursuedream
策略模式
摘要:策略模式是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。假设现在要设计一个贩卖各类书籍的电子商务网站的购物车(Shopping Cat)系统。一个最简单的情况就是把所有货品的单价乘上数量,但是实际情况肯定比这要复杂。比如,本网站可能对所有的教材类图书实行每本一元的折扣;对连环画类图书提供每本7%的促销折扣,... 阅读全文
posted @ 2007-06-25 15:21 pursuedream
模板方法(Template Method)模式
摘要:模板方法(Template Method)模式准备一个抽象类,将部分逻辑以具体方法以及具体构造子的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模版方法模式的用意。很多人可能没有想到,模版方法模式实际上是所有模式中最为常见的几个模式之一,而且很多人可能使用过模版方法模式而没有意识到自己已经使用了这个模式。模版... 阅读全文
posted @ 2007-06-25 15:15 pursuedream
桥梁模式
摘要:桥梁模式的用意是"将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化.如果一个系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性,避免在两个层次之间建立静态的联系。设计要求实现化角色的任何改变不应当影响客户端,或者说实现化角色的改变对客户端是完全透明的。一个构件有多于一个的抽象化角色和实现化角色,系统需要它们之间进行动态耦合。虽然在系统中... 阅读全文
posted @ 2007-06-25 15:14 pursuedream
命令模式
摘要:”行为请求者“和“行为实现者”是一种“紧耦合”,但某些场合--比如需要对行为进行“记录、撤消/重做、事务 “等处理,这需要进行解耦。每一个命令都是一个操作:请求的一方发出请求要求执行一个操作;接收的一方收到请求,并执行操作。命令模式允许请求的一方和接收的一方独立开来,使得请求的一方不必知道接收请求的一方的接口,更不必知道请求是怎么被接收,以及操作是否被执行、何时被执行,以及是怎么被执行的。命令模式... 阅读全文
posted @ 2007-06-25 15:13 pursuedream
合成(Composite)模式
摘要:合成(Composite)模式(他们在充当对象同时,又是其他对象容器)含递归合成模式有时又叫做部分-整体模式(Part-Whole)。合成模式将对象组织到树结构中,可以用来描述整体与部分的关系。合成模式可以使客户端将单纯元素与复合元素同等看待。一个树结构由两种节点组成:树枝节点和树叶节点。树枝节点可以有子节点,而一个树叶节点不可以有子节点。除了根节点外,其它节点有且只有一个父节点。Composit... 阅读全文
posted @ 2007-06-25 15:09 pursuedream
代理模式
摘要:代理模式在面向对象系统中,有些对象由于某种原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问等),直接访问会给使用者带来麻烦。解决方式增加一层间接层.原始 public abstract class Subject { public abstract void Request(); }继承 public class RealSubjec... 阅读全文
posted @ 2007-06-25 15:08 pursuedream
适配器(Adapter)模式
摘要:适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法在一起工作的两个类能够在一起工作。 1、 系统需要使用现有的类,而此类的接口不符合系统的需要。2、 想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作。这些源类不一定有很复杂的接口。3、 (对对象适配器而言)在设计里,需要改变多个已有子类的接口,如果使用类的适配器... 阅读全文
posted @ 2007-03-20 23:09 pursuedream 阅读(133) 评论(0) 推荐(0)
原型(Prototype)模式
摘要:原型模式的用意是:通过给出一个原型对象来指明所要创建的对象类型,然后用复制这个原型对象的办法创建出更多的同类型对象。C#里面,我们可以很容易的通过Clone()方法实现原型模式,分浅拷贝和深拷贝。浅拷贝是对象的字段值被拷贝,其引用的对象不拷贝,他们共享引用的对象;深拷贝会拷贝对象字段值和引用的对象,独立一份。 浅拷贝 Code highlighting produced by Actipro... 阅读全文
posted @ 2007-03-19 23:12 pursuedream
建造者(Builder)模式
摘要:建造者(Builder)模式(客户端决定什么时候创建,创建什么产品,建造者模式可以强迫生成顺序) 建造者模式可以将一个产品的内部表象与产品的生成过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。 一个对象会有一些重要的性质,在它们没有恰当的值之前,对象不能作为一个完整的产品使用。比如,一个电子邮件有发件人地址、收件人地址、主题、内容、附录等部分,而在最起码的收件人地址未被赋值之... 阅读全文
posted @ 2007-03-17 14:24 pursuedream
抽象工厂模式
摘要:抽象工厂模式一个系统不应当依赖于产品类实例如何被创建、组合和表达的细节,这对于所有形态的工厂模式都是重要的。这个系统有多于一个的产品族,而系统只消费其中某一产品族。同属于同一个产品族的产品是在一起使用的,这一约束必须在系统的设计中体现出来。系统提供一个产品类的库,所有的产品以同样的接口出现,从而使客户端不依赖于实现。 如:车灯类和颜色灯类是不同的两个类,车灯类下分红车灯、蓝车灯,颜色灯类也分红灯和... 阅读全文
posted @ 2007-03-17 14:23 pursuedream 阅读(194) 评论(0) 推荐(0)
享元模式
摘要:Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> /// /// Light 的摘要说明。 /// public abstract class Light { } public ... 阅读全文
posted @ 2007-03-07 14:31 pursuedream
工厂方法模式
摘要:工厂方法(FactoryMethod)模式是类的创建模式,其用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中, 而简单工厂方法是直接创建子类。当系统扩展需要添加新的产品对象时,仅仅需要添加一个具体对象以及一个具体工厂对象,原有工厂对象不需要进行任何修改,也不需要修改客户端,很好的符合了"开放-封闭"原则。而简单工厂模式在添加新产品对象后不得不修改工厂方法,扩展性不好。 Code ... 阅读全文
posted @ 2007-03-06 18:26 pursuedream 阅读(167) 评论(0) 推荐(0)
简单工厂模式
摘要:工厂模式专门负责将大量有共同接口的类实例化。工厂模式可以动态决定将哪一个类实例化,不必事先知道每次要实例化哪一个。它包括:简单工厂模式、工厂方法模式、抽象工厂模式。 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> public abst... 阅读全文
posted @ 2007-03-06 17:58 pursuedream