
design patterns
文章平均质量分 88
iteye_21297
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
设计模式之享元模式
一、 享元(Flyweight)模式(转贴) Flyweight在拳击比赛中指最轻量级,即"蝇量级",有些作者翻译为"羽量级"。这里使用"享元模式"更能反映模式的用意。 享元模式以共享的方式高效地支持大量的细粒度对象。享元对象能做到共享的关键是区分内蕴状态(Internal State)和外蕴状态(External State)。内蕴状态是存储在享元对象内部并且不会随环境改变而改变。因此内蕴状...原创 2009-07-18 10:21:05 · 125 阅读 · 0 评论 -
设计模式之抽象工厂模式(一)
一、模式描述 我的程序中有需要一系列的对象,比如我们要吃一碗米饭(Rice),要喝一杯咖啡(Coffee)......,要想利用他们,我们就必须在程序中根据用户要求,然后一个个调用 new 操作符来生成他们,这样客户程序就要知道相应的类的信息,生成的代码显然不够灵活。那么我们可以在代码中不利用具体的类,而只是说明我们需要什么,然后就能够得到我们想要的对象呢? 这当然是可以的,根...原创 2009-07-29 15:45:02 · 133 阅读 · 0 评论 -
设计模式之建造者模式(二)
五、 建造者模式的实现: 下面的程序代码演示了Shop对象使用VehicleBuilders来建造不同的交通工具。该例子使用了Builder模式顺序建造交通工具的不同部分。 // Builder pattern -- Real World example using System; using System.Collections; // "Director" cla...原创 2009-07-29 15:36:41 · 92 阅读 · 0 评论 -
设计模式之建造者模式(一)
建造者模式可以将一个产品的内部表象与产品的生成过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。 对象性质的建造 有些情况下,一个对象会有一些重要的性质,在它们没有恰当的值之前,对象不能作为一个完整的产品使用。比如,一个电子邮件有发件人地址、收件人地址、主题、内容、附录等部分,而在最起码的收件人地址未被赋值之前,这个电子邮件不能发出。 有些情况下,一个对象...原创 2009-07-29 15:35:23 · 99 阅读 · 0 评论 -
设计模式之原型模式
原型模式是通过现有的一个对象,复制出更多的此类型的对象以供使用。 例子: 孙悟空的猴毛:孙悟空拔下一嘬猴毛,轻轻一吹就会变出好多的孙悟空来。 红警中的箱子:在玩红警时会出现一些小箱子(魔法箱子),有的小箱子被一辆坦克撞开的时候会变出一辆同样的坦克。 在C#中实现 原型模式很简单,在ICloneable接口中有一个Clone的方法,只要实现该接口就可以通过重写Clone方法来实现对象的...原创 2009-07-22 17:19:59 · 123 阅读 · 0 评论 -
设计模式之工厂方法模式
一、 工厂方法(Factory Method)模式 工厂方法(FactoryMethod)模式是类的创建模式,其用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。 工厂方法模式是简单工厂模式的进一步抽象和推广。由于使用了多态性,工厂方法模式保持了简单工厂模式的优点,而且克服了它的缺点。 ...原创 2009-07-22 17:12:23 · 108 阅读 · 0 评论 -
设计模式之单例模式
单例模式是一种创建型模式,所谓创建型模式就是对实例的生成过程进行管理的一类模式。当编程的时候我们常常有一个这样的问题,我们需要写一个类,规定这个类只能产生一个实例,这个实例在全局被所有类都能够调用到,这个时候我们所使用的就是单例模式。 单实例对象设计模式提供了一个关于私有和静态构造函数的非常好的一个实例。下面我们看一个例子: using System; ...原创 2009-07-22 16:51:07 · 87 阅读 · 0 评论 -
设计模式之装饰者模式
1、定义及作用 该模式以对客户端透明的方式扩展对象的功能。 2、涉及角色 抽象构件角色:定义一个抽象接口,来规范准备附加功能的类。 具体构件角色:将要被附加功能的类,实现抽象构件角色接口。 抽象装饰者角色:持有对具体构件角色的引用并定义与抽象构件角色一致的接口。 具体装饰角色:实现抽象装饰者角色,负责为具体构件添加额外功能...原创 2009-07-22 12:31:33 · 87 阅读 · 0 评论 -
设计模式之组合模式
Composite 组合模式主要是应对这 样的问题:一类具有“容器特征”的对象——即他们在充当对象的同时,又是其他对象的容器的情况。在编写时我们常常会造成:客户代码过多地依赖于对象容器复 杂的内部实现,对象容器内部实现结构(而非抽象接口)的变化将引起客户代码的频繁变化,带来了代码的维护性、扩展性的弊端。 GoF 《设计模式》中说到:将对象组合成树形结构以表示“部分 ...原创 2009-07-20 15:31:15 · 110 阅读 · 0 评论 -
设计模式之外观模式
Facade 外 观模式,是一种结构型模式,它主要解决的问题是:组件的客户和组件中各种复杂的子系统有了过多的耦合,随着外部客户程序和各子系统的演化,这种过多的耦合 面临很多变化的挑战。在这里我想举一个例子:比如,现在有一辆汽车,我们(客户程序)要启动它,那我们就要发动引擎(子系统 1 ),使四个车轮(子系统 2 )转动。但是实际中我们并不需要用手推动车轮使其转动,我们踩下油门,此时汽...原创 2009-07-20 14:31:40 · 99 阅读 · 0 评论 -
设计模式之桥接模式
概述 软件开发网 www.mscto.com 在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?这就要使用 Bridge 模式。 意图 将抽象部分与实现部分分离,使它们都可以独立的变化。 [GOF 《设计模式》...原创 2009-07-18 11:15:27 · 90 阅读 · 0 评论 -
设计模式之适配器模式
适配器(Adapter)模式 定义:适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法在一起工作的两个类能够在一起工作。 适配器(Adapter)模式分类: 1:类的适配器模式; 2:对象的适配器模式。 假想示例说明:假设图片出版后由总公司负责销售,总公司对于图书的销售有两种: 1...原创 2009-07-18 10:51:43 · 102 阅读 · 0 评论 -
设计模式之代理模式
代理模式(Proxy Pattern) ——.NET设计模式系列之十四 Terrylee,2006年5月 摘要 在软件系统中,有些对象有时候由于跨越网络或者其他的障碍,而不能够或者不想直接访问另一个对象,如果直接访问会给系统带来不必要的复杂性,这时候可以在客户程序和目标对象之间增加一层中间层,让代理对象来代替目标对象打点一切。这就是本文要说的Proxy模式。 主要内容 ...原创 2009-07-18 10:32:39 · 101 阅读 · 0 评论 -
设计模式之抽象工厂模式(二)
七、.NET 2.0中的抽象工厂模式 .NET 2.0相比.NET 1.1有很大的改进,就在ADO.NET上来说吧,提供了一套新的操作接口。下面我就简单的介绍下这套接口的设计,在System.Date下提供了 IDbConnection 、IDbCommand、IDbDataAdapter以及IDbTransaction这样一系列接口,通过ProviderFactory来完成具体 ...原创 2009-07-29 15:48:02 · 119 阅读 · 0 评论