设计模式笔记(1 ABSTRACT FACTORY & BUILDER)
2006-03-07 11:18
453 查看
设计模式的书已经被翻的很旧了,最近,似乎开始明白书中讲述的内容了.还是把心得体会记录下来,算是一个脚印.
1. ABSTRACT FACTORY(抽象工厂)
适用性:
一个系统要独立于其产品的创建时.
一个系统要由多个产品系列中的一个来配置时.
强调一个产品系列从而联合使用时.
为一个产品库提供接口,屏蔽实现时.
理解:
抽象工厂通常作用于多个类似的类系列上,每个系列中,有着基本一致的类元素,或者说,可以为这些系列抽象出一个新的系列--公共的接口类系列.
工厂本身,需要能够创建单个系列中所有类的实例.因此当系列中的元素增加时,需要修改所有具体类厂,这一点相当麻烦.也就是说,抽象类厂不太适合经常新的产品种类.而适合用在稳定成熟的类系列上.
2.BUILDER(生成器)
基于一个复杂的创建过程,产生一个结果对象.
理解:
这个"复杂的创建过程",不意味着简单的调用结果对象的set方法的序列.例如,可能是在一个复杂的模版算法中,在相关位置调用结果对象的相关算法.甚至,不直接调用结果对象的方法,而是调用一系列的COMMAND, COMMAND对象代理结果对象的相关方法.因此,书中P65图中的BuildPartA(), BuildPartB(), BuildPartC()并不是典型的BUILDER的用法.
1. ABSTRACT FACTORY(抽象工厂)
适用性:
一个系统要独立于其产品的创建时.
一个系统要由多个产品系列中的一个来配置时.
强调一个产品系列从而联合使用时.
为一个产品库提供接口,屏蔽实现时.
理解:
抽象工厂通常作用于多个类似的类系列上,每个系列中,有着基本一致的类元素,或者说,可以为这些系列抽象出一个新的系列--公共的接口类系列.
工厂本身,需要能够创建单个系列中所有类的实例.因此当系列中的元素增加时,需要修改所有具体类厂,这一点相当麻烦.也就是说,抽象类厂不太适合经常新的产品种类.而适合用在稳定成熟的类系列上.
2.BUILDER(生成器)
基于一个复杂的创建过程,产生一个结果对象.
理解:
这个"复杂的创建过程",不意味着简单的调用结果对象的set方法的序列.例如,可能是在一个复杂的模版算法中,在相关位置调用结果对象的相关算法.甚至,不直接调用结果对象的方法,而是调用一系列的COMMAND, COMMAND对象代理结果对象的相关方法.因此,书中P65图中的BuildPartA(), BuildPartB(), BuildPartC()并不是典型的BUILDER的用法.
相关文章推荐
- 设计模式笔记(1 ABSTRACT FACTORY & BUILDER)
- 设计模式笔记(1 ABSTRACT FACTORY & BUILDER)
- 设计模式笔记6:抽象工程模式(Abstract Factory Pattern)
- 设计模式学习系列笔记(builder&nbs…
- 设计模式学习笔记--工厂(Factory)、建造(Builder)和原型(Prototype)
- 设计模式学习笔记--抽象工厂模式(Abstract Factory Pattern)【创建型模式】
- Builder&Factory设计模式
- 设计模式笔记(4 ADAPTER & BRIDGE)
- JAVA设计模式(1) —<创建型>工厂方法模式(Factory Method)
- 设计模式(Design Patterns)笔记之四:Builder
- c++设计模式:抽象工厂模式(Abstract Factory Pattern)
- 极速理解设计模式系列:10.抽象工厂模式(Abstract Factory Pattern)
- 设计模式学习笔记(五):建造者模式【Builder Pattern】(一)问题提出
- 设计模式3:Abstract Factory Pattern(抽象工厂模式)
- 设计模式之三——工厂方法模式(Factory Method)&抽象工厂模式(AbstractFacotry)
- 乐在其中设计模式(C#) - 抽象工厂模式(Abstract Factory Pattern)
- 阿Sam的设计模式学习笔记----Factory模式(之Simple Factory)
- 设计模式初学者笔记:Builder模式
- 设计模式笔记(4 ADAPTER & BRIDGE)
- 23种设计模式之-----抽象工厂模式(AbstractFactory pattern)