广义factory

原创 2007年09月21日 17:17:00

 工厂生产一种产品,其实new也是一个工厂,GoF里还对工厂有更细的划分,但是,这给人的感觉是工厂是从无到有的,其实不是这样,工厂也可以从有到有。

new是一个工厂,它生成的是初级产品。对于一个初级产品来说,你可能想让它个性化,譬如每个学生都有自己的名字,学生都一样,但是用学生产生带名字的学生的过程也是一次工厂作用。

ACE_SOCK_Acceptor和ACE_SOCK_Connector就是这样的工厂。

工厂是用来生成产品的,但是一个工厂未必肯定有机会生产出产品,这对从无到有的工厂来说好理解,我们未调用它而已。对于从有到有的工厂,情况也一样,譬如一个生成带名字学生的工厂,当它得到一个名字信息的时候,才对传递而来的初产品进行加工。如果它永远也没有得到名字信息,这个和永远也没有被调用一样。

这也是ace的这两个工厂给我的启示。

由此可以思考广义的工厂,并试图对是工厂的情况有规范化的工厂予以改造。

譬如new工厂,把new做封装制成GoF的工厂会获得不错的维护优势。对传递引用获取数据的操作,把它做二次加工工厂来考虑也是个不错的想法,尤其当这个被传递的数据是一个对象或结构的时候,用工厂的思想同样可以让你在维护阶段受益。

相关文章推荐

Matlab 广义高斯分布建模

  • 2017年11月10日 15:14
  • 301KB
  • 下载

广义主成分分析GPCA

  • 2016年04月26日 14:24
  • 10KB
  • 下载

第9周项目4 -广义表算法库及应用(1)

问题及代码: /* * Copyright (c)2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:4.cpp * 作 者:王...

广义表的建立与遍历

  • 2015年12月16日 08:04
  • 3KB
  • 下载

ML—广义线性模型导论

Andrew Zhang Tianjin Key Laboratory of Cognitive Computing and Application Tianjin University Nov...

数据结构数组和广义表课件

  • 2014年10月16日 21:53
  • 861KB
  • 下载

数组和广义表

  • 2014年10月24日 19:59
  • 2.88MB
  • 下载

第九周项目4-广义表算法库及应用(1)

/*    * Copyright (c) 2016, 烟台大学计算机与控制工程学院    * All rights reserved。    * 文件名称 :1.cpp    * 作    ...
  • Gjyjj
  • Gjyjj
  • 2016年11月03日 10:55
  • 102

数组和广义表

  • 2013年06月17日 21:20
  • 46KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:广义factory
举报原因:
原因补充:

(最多只允许输入30个字)