现在位置: 首页 > 设计模式
2012-07-19 19:31 工业·编程 ⁄ 共 903字 暂无评论
1、意图 用原型实例指定创建对象的种类,并且通过“拷贝这些原型”创建新的对象。 2、问题 当一个系统应该独立于它的产品创建、构成和表示时; 当要实例化的类是在运行时指定时(如动态装载); 为了避免创建一个与产品类层次平行的工厂类层次时; 当一个类的实例只能有几个不同状态组合中的一种时。 3、解决方案 创建产品时,根据原型参数,克隆一个新产品。 4、通用结构 5、参与者 Prototype:声明一个克隆自身的接...
阅读全文
1、意图 定义一个创建对象的接口,让子类决定实例化哪一个类。Factory Method模式使一个类的实例化延迟到子类。 2、问题 一个类需要实例化另一个类的派生类。但不知道是哪一个。Factory Method允许派生类进行决策。 3、解决方案 派生类对实例化哪个类和如何实例化做出决策。 4、通用结构 5、参与者 Product:定义将被工厂方法创建的对象的接口 ConcreteProduct:实现Product接口 Creator:声明工厂方法,该方法返回一个...
阅读全文
2012-07-19 19:30 工业·编程 ⁄ 共 689字 暂无评论
1、意图 将一个复杂对象的构建与它的表示分离开,使得同样的构建过程可以创建不同的表示。 2、问题 创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式。 构造过程必须允许被构造的对象有不同的表示。 3、解决方案 将复杂对象的构造方法独立出来。 4、通用结构 5、参与者 builder:为创建一个Product的各个部件指定抽象接口。 ConcreteBuilder:实现Builder的各个接口以构造和装配该产品的的各个部件;...
阅读全文
2012-07-19 19:29 工业·编程 ⁄ 共 643字 暂无评论
1、意图 在创建对象比较昂贵,或者对于特定类型能够创建的对象数目有限制时,管理对象的重用。 2、问题 对象的创建和/或管理必须遵循一组定义明确的规则集。通常这些规则都与如何创建对象、能够创建多少个对象和在已有对象完成当前任务时如何重用它们等等相关。 3、通用结构 4、解决方案 在需要一个Reusable对象时,Client调用ReusablePool的AcquireReusable方法。如果池是空的,那么AcquireReusable方法创建一个Reusable对...
阅读全文
1、 意图 多线程中,创建线程安全的单件模式。 2、 问题 多线程中,Singleton模式并不总是正常工作的。 3、 解决方案 在检查到null或实例未创建之后进行“同步”,然后再检查一次,确保实例尚未创建 4、 效果 Singleton模式的变体,优化掉不必要的锁定,这种同步检查最多进行一次,因此不会成为瓶颈。 5、 实现 // .Net中通过MemoryBarrier 实现 public class MySingleton {     private static ...
阅读全文
2012-07-19 19:25 工业·编程 ⁄ 共 506字 暂无评论
1、意图 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 2、工作原理 用一个特殊方法来实例化所需的对象。其中最关键的就是这个方法:调用这个方法时,检查对象是否已经实例化。如果已经实例化,该方法仅返回对该对象的一个引用。如果尚未实例化,该方法实例化该对象并返回对此新实例的一个引用。为了确保这是实例化此类型对象的唯一方法,将这个这个类的构造函数定义为保护或者私有的。 3、问题 几个不同的客户对...
阅读全文
文章目录 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...
阅读全文
1、意图 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 2、适用性 以下情况可用Abstract Factory 模式: 一个系统要独立于它的产品的创建、组合和表示时。 一个系统要有多个产品系列中的一个来配置时。 当你要强调一系列相关产品对象的设计以便进行联合使用时。 当你提供一个产品类库,而只想显示它们的接口而不是实现时。 3、解决方案 协调对象组的创建。提供一种方式,将如何执行对象实...
阅读全文