[*] Hello Snoopy

.NET and Flash Blog

2004年12月21日

设计模式(15)-Facade Pattern

摘要: 一、 门面(Facade)模式 外部与一个子系统的通信必须通过一个统一的门面(Facade)对象进行,这就是门面模式。 医院的例子 用一个例子进行说明,如果把医院作为一个子系统,按照部门职能,这个系统可以划分为挂号、门诊、划价、化验、收费、取药等。看病的病人要与这些部门打交道,就如同一个子系统的客户端与一个子系统的各个类打交道一样,不是一件容易的事情。 首先病人必须先挂号,然后门诊。如果医生要求化... 阅读全文

posted @ 2004-12-21 15:57 HelloSnoopy 阅读(487) 评论(0) 推荐(0) 编辑
设计模式随笔-锦囊妙计 (命令模式)

摘要: 话说《三国演义》中,周瑜与孙权定下计谋,以孙权之妹为诱饵,骗刘备过江到东吴招亲,想趁机杀害刘备,索回荆州。诸葛亮早识破了诡计,令武将赵云随同并护卫刘备前往,并给赵云了三个锦囊,嘱咐他依次执行即可。结果,赵云按照诸葛亮的锦囊妙计行事,不仅帮助刘备将孙权之妹孙尚香夫人迎娶回来,还得到孙权之母吴国太的欢心,陪同刘备夫妇回了荆州。《三国演义》这段记叙,为后世创造了“锦囊妙计”和“赔了夫人又折兵”两个成语... 阅读全文

posted @ 2004-12-21 10:37 HelloSnoopy 阅读(373) 评论(0) 推荐(0) 编辑
设计模式随笔-用奶箱订报纸 (观察者模式)

摘要: 几天前给学生上课,一个学生问我用Delegate与Event实现Observer模式与不用它们实现到底有什么区别?我便讲了一个用奶箱订报纸的故事。 现在很多人都同时在订报纸和牛奶,送报纸的和送牛奶的也会在楼门口钉上一个箱子,一来方便,二来也为自己做做广告。现在楼门口前钉的大大小小都是箱子,几乎挤满了所有可用的地方。报箱是那种长长的,而奶箱子则有些四四方方,上面都开了可口,用来投递的。我家原来订了... 阅读全文

posted @ 2004-12-21 10:36 HelloSnoopy 阅读(483) 评论(0) 推荐(0) 编辑
设计模式(18)-Command Pattern

摘要: 一、 命令(Command)模式 命令(Command)模式属于对象的行为模式【GOF95】。命令模式又称为行动(Action)模式或交易(Transaction)模式。命令模式把一个请求或者操作封装到一个对象中。命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。 命令模式是对命令的封装。命令模式把发出命令的责任和执行命令的责任分割开,委派给不... 阅读全文

posted @ 2004-12-21 10:30 HelloSnoopy 阅读(460) 评论(0) 推荐(0) 编辑
设计模式(19)-Observer Pattern

摘要: 一、 观察者(Observer)模式 观察者模式又叫做发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。 一个软... 阅读全文

posted @ 2004-12-21 10:30 HelloSnoopy 阅读(354) 评论(0) 推荐(0) 编辑
C#设计模式(11)-Composite Pattern

摘要: 一、 合成(Composite)模式 合成模式有时又叫做部分-整体模式(Part-Whole)。合成模式将对象组织到树结构中,可以用来描述整体与部分的关系。合成模式可以使客户端将单纯元素与复合元素同等看待。 从和尚的故事谈起 这是小时候我奶奶讲的故事:从前有个山,山里有个庙,庙里有个老和尚在给小和尚讲故事,讲的什么故事呢?从前有个山,山里有个庙……。奶奶的故事要循环多少次,根据你多长时间睡着而定。... 阅读全文

posted @ 2004-12-21 10:29 HelloSnoopy 阅读(370) 评论(0) 推荐(0) 编辑
C#设计模式(10)-Adapter Pattern

摘要: 结构模式(Structural Pattern)描述如何将类或者对象结合在一起形成更大的结构。结构模式描述两种不同的东西:类与类的实例。根据这一点,结构模式可以分为类的结构模式和对象的结构模式。 后续内容将包括以下结构模式: 适配器模式(Adapter):Match interfaces of different classes 合成模式(Composite):A tree structure ... 阅读全文

posted @ 2004-12-21 10:28 HelloSnoopy 阅读(372) 评论(0) 推荐(0) 编辑
C#设计模式(9)-Prototype Pattern

摘要: 一、 原型(Prototype)模式 原型模式的用意是:通过给出一个原型对象来指明所要创建的对象类型,然后用复制这个原型对象的办法创建出更多的同类型对象。 从孙大圣的手段谈起 孙悟空在与黄风怪的战斗中,"使一个身外身的手段:把毫毛揪下一把,用口嚼得粉碎,望上一喷,叫声'变',变有百十个行者,都是一样得打扮,各执一根铁棒,把那怪围在空中。"换而言之,孙悟空可以根据自己的形象,复制出很多"身外身"来。... 阅读全文

posted @ 2004-12-21 10:26 HelloSnoopy 阅读(378) 评论(0) 推荐(0) 编辑
C#设计模式(8)-Builder Pattern

摘要: 一、 建造者(Builder)模式 建造者模式可以将一个产品的内部表象与产品的生成过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。 对象性质的建造 有些情况下,一个对象会有一些重要的性质,在它们没有恰当的值之前,对象不能作为一个完整的产品使用。比如,一个电子邮件有发件人地址、收件人地址、主题、内容、附录等部分,而在最起码的收件人地址未被赋值之前,这个电子邮件不能发出。 有些情... 阅读全文

posted @ 2004-12-21 10:26 HelloSnoopy 阅读(368) 评论(0) 推荐(0) 编辑
C#设计模式(7)-Singleton Pattern

摘要: 一、 单例(Singleton)模式 单例模式的特点: 单例类只能有一个实例。 单例类必须自己创建自己的唯一实例。 单例类必须给所有其它对象提供这一实例。 单例模式应用: 每台计算机可以有若干个打印机,但只能有一个Printer Spooler,避免两个打印作业同时输出到打印机。 一个具有自动编号主键的表可以有多个用户同时使用,但数据库中只能有一个地方分配下一个主键编号。否则会出现主键重复。... 阅读全文

posted @ 2004-12-21 10:25 HelloSnoopy 阅读(407) 评论(0) 推荐(0) 编辑
C#设计模式(6)-Abstract Factory Pattern

摘要: 一、 抽象工厂(Abstract Factory)模式 抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。 为了方便引进抽象工厂模式,引进一个新概念:产品族(Product Family)。所谓产品族,是指位于不同产品等级结构,功能相关联的产品组成的家族。如图: 图中一共有四个产品族,分布于三个不同的产品等级结构中。只要指明一个产品所处的产品族以及它所属的等级结构,就可以唯一... 阅读全文

posted @ 2004-12-21 10:25 HelloSnoopy 阅读(390) 评论(0) 推荐(0) 编辑
C#设计模式(5)-Factory Method Pattern

摘要: 一、 工厂方法(Factory Method)模式 工厂方法(FactoryMethod)模式是类的创建模式,其用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。 工厂方法模式是简单工厂模式的进一步抽象和推广。由于使用了多态性,工厂方法模式保持了简单工厂模式的优点,而且克服了它的缺点。 在工厂方法模式中,核心的工厂类不再负责所有产品的创建,而是将具体创建工作交给子类去做。这个核心类... 阅读全文

posted @ 2004-12-21 10:23 HelloSnoopy 阅读(328) 评论(0) 推荐(0) 编辑
C#设计模式(4)-Simple Factory Pattern

摘要: 工厂模式专门负责将大量有共同接口的类实例化。工厂模式可以动态决定将哪一个类实例化,不必事先知道每次要实例化哪一个类。工厂模式有以下几种形态: 简单工厂(Simple Factory)模式 工厂方法(Factory Method)模式 抽象工厂(Abstract Factory)模式 一、 简单工厂(Simple Factory)模式 Simple Factory模式根据提供给它的数据,返回几... 阅读全文

posted @ 2004-12-21 10:23 HelloSnoopy 阅读(365) 评论(0) 推荐(0) 编辑
asp.net forums中定时器的应用

摘要: src:http://blog.joycode.com/dotey/archive/2004/12/20/41438.aspx 在Asp.Net中使用定时器,破宝之前已有Blog写过《在 ASP.NET 中使用计时器(Timer)》,这里主要针对Asp.Net Forums来说一下其具体实现。 在Asp.Net Forums中,对定时器有如下应用: 1. 更新论坛统计信息 2. 定时索引... 阅读全文

posted @ 2004-12-21 10:20 HelloSnoopy 阅读(428) 评论(0) 推荐(0) 编辑