2012-07-19 19:30
⁄ 工业·编程
⁄ 共 569字
1、意图
定义一个创建对象的接口,让子类决定实例化哪一个类。Factory Method模式使一个类的实例化延迟到子类。
2、问题
一个类需要实例化另一个类的派生类。但不知道是哪一个。Factory Method允许派生类进行决策。
3、解决方案
派生类对实例化哪个类和如何实例化做出决策。
4、通用结构
5、参与者
Product:定义将被工厂方法创建的对象的接口
ConcreteProduct:实现Product接口
Creator:声明工厂方法,该方法返回一个...
设计模式, 软件开发阅读全文
2012-07-19 19:29
⁄ 工业·编程
⁄ 共 643字
1、意图
在创建对象比较昂贵,或者对于特定类型能够创建的对象数目有限制时,管理对象的重用。
2、问题
对象的创建和/或管理必须遵循一组定义明确的规则集。通常这些规则都与如何创建对象、能够创建多少个对象和在已有对象完成当前任务时如何重用它们等等相关。
3、通用结构
4、解决方案
在需要一个Reusable对象时,Client调用ReusablePool的AcquireReusable方法。如果池是空的,那么AcquireReusable方法创建一个Reusable对...
设计模式, 软件开发阅读全文
2012-07-19 19:27
⁄ 工业·编程
⁄ 共 1424字
1、 意图
多线程中,创建线程安全的单件模式。
2、 问题
多线程中,Singleton模式并不总是正常工作的。
3、 解决方案
在检查到null或实例未创建之后进行“同步”,然后再检查一次,确保实例尚未创建
4、 效果
Singleton模式的变体,优化掉不必要的锁定,这种同步检查最多进行一次,因此不会成为瓶颈。
5、 实现
// .Net中通过MemoryBarrier 实现 public class MySingleton { private static ...
设计模式, 软件开发阅读全文
2012-07-19 19:25
⁄ 工业·编程
⁄ 共 506字
1、意图
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
2、工作原理
用一个特殊方法来实例化所需的对象。其中最关键的就是这个方法:调用这个方法时,检查对象是否已经实例化。如果已经实例化,该方法仅返回对该对象的一个引用。如果尚未实例化,该方法实例化该对象并返回对此新实例的一个引用。为了确保这是实例化此类型对象的唯一方法,将这个这个类的构造函数定义为保护或者私有的。
3、问题
几个不同的客户对...
设计模式, 软件开发阅读全文
2012-07-19 19:24
⁄ 工业·编程
⁄ 共 627字
文章目录
1、TemplateMethod模式简介
2、TemplateMethod模式关键特征
1、TemplateMethod模式简介
Template Method是一个旨在帮助我们在抽象层次从一组不同的步骤中概括出一个通用过程的模式。《设计模式》一书中对Template Method模式的意图数这样的:定义一个操作中算法的骨架,而将一些步骤延迟到子类中。不改变算法的结构而重定义它的步骤。
Template Method模式适用...
设计模式, 软件开发阅读全文
2012-07-19 18:05
⁄ 工业·编程
⁄ 共 1211字
文章目录
1、Observer模式
2、Observer模式关键特征
1、Observer模式
《设计模式》一书中对Observer模式的意图是这样叙述的:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知并自动更新。
Observer模式并不是只要在对象间存在依赖关系时就要使用。例如,假设在一个票据处理系统中,有一个Tax对象处理缴税问题,显然当票...
设计模式, 软件开发阅读全文
2012-07-19 18:03
⁄ 工业·编程
⁄ 共 1630字
1、 Decorator模式简介
《设计模式》一书中对Decorator模式的意图是这样叙述的:
动态的给一个对象添加一些额外的职责。就增加功能来说,Decorator模式比生成子类更为灵活。
Decorator模式的工作原理是:可以创建始于Decorator对象(负责新功能的对象)终于原对象的一个对象“链”。实现方法:将原对象作为新对象的成员。
如上图中Decorator模式的类图隐含了一条对象链。每条链都始于一个Component对象(ConcreteComponent或Deco...
设计模式, 软件开发阅读全文
2012-07-19 18:02
⁄ 工业·编程
⁄ 共 1005字
1、意图
提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
2、适用性
以下情况可用Abstract Factory 模式:
一个系统要独立于它的产品的创建、组合和表示时。
一个系统要有多个产品系列中的一个来配置时。
当你要强调一系列相关产品对象的设计以便进行联合使用时。
当你提供一个产品类库,而只想显示它们的接口而不是实现时。
3、解决方案
协调对象组的创建。提供一种方式,将如何执行对象实...
设计模式, 软件开发阅读全文
2012-07-19 18:00
⁄ 工业·编程
⁄ 共 374字
1、Bridge模式简介
所谓Bridge就是连接两处的通道。
《设计模式》一书对Bridge模式的意图是这样叙述的:
“将抽象与实现解耦,使它们都可以独立地变化。”
2、Bridge模式关键特征
意图
将一组实现与另一组使用它们的对象分离。
问题
一个抽象类的派生类必须使用多个实现,但不能出现类数量爆炸性增长
解决方案
为所有实现定义一个接口,供抽象类的所有派生类使用。
参与者与协作者
Abstraction为要实现...
设计模式, 软件开发阅读全文
2012-07-19 17:58
⁄ 工业·编程
⁄ 共 770字
1、Strategy模式简介
《设计模式》一书中对Stragety模式的意图是这样叙述的:
定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。Strategy模式使算法可独立于使用它的客户而变化。
Strategy模式以下面几条原则为基础:
1) 对象都具有职责;
2) 这些职责不同的具体实现是通过多态的使用完成的;
3) 概念上相同的算法具有多个不同的实现,需要进行管理。
2、Strategy模式关键特征
意图
可以根据所处上...
设计模式, 软件开发阅读全文