设计模式笔记(1 ABSTRACT FACTORY & BUILDER)
来源:互联网 发布:氚云网络 编辑:程序博客网 时间:2024/05/20 23:07
设计模式的书已经被翻的很旧了,最近,似乎开始明白书中讲述的内容了.还是把心得体会记录下来,算是一个脚印.
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)
- 设计模式笔记(1 ABSTRACT FACTORY & BUILDER)
- [设计模式]Abstract Factory和Builder
- 设计模式factory method; abstract fatory; builder ; prototype
- 设计模式学习笔记-Abstract Factory
- 笔记:Gof设计模式--Abstract Factory
- 设计模式(Abstract Factory)
- 设计模式-Abstract Factory
- 设计模式--Abstract Factory
- 设计模式实战之——创建型模式(Builder、Factory method、Abstract factory)
- Builder&Factory设计模式
- 设计模式-Abstract Factory模式
- 设计模式 - Abstract Factory模式
- 设计模式--Abstract Factory模式
- Factory, Abstract Factory, Factory Method, 和Builder模式的思考
- 关于Factory, Abstract Factory, Factory Method, 和Builder模式
- 设计模式(2)-抽象工厂模式(Abstract Factory)与生成器模式(Builder)模式
- 设计模式笔记(5 COMPOSITE & DECORATOR)
- 实现QQ窗体的缩入伸出功能
- 设计模式笔记(4 ADAPTER & BRIDGE)
- 设计模式笔记(3 PROTOTYPE & SINGLETON)
- 设计模式笔记(2 FACTORY METHOD)
- 设计模式笔记(1 ABSTRACT FACTORY & BUILDER)
- 利用dataset行列互换
- 通过递归来实现搜索文件
- 通过http协议取得网络文件并进行base64编码
- 面试的题目
- FLEXGRID控件的使用方法(转载MSTOP (陈建华) )
- 如何用delphi实现ftp下载文件
- 如何给导入文件加上时间戳标记
- xici上一个女孩子的征婚