关闭

广义factory

标签: 产品
514人阅读 评论(0) 收藏 举报
分类:

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

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

ACE_SOCK_Acceptor和ACE_SOCK_Connector就是这样的工厂。

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

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

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

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

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:179029次
    • 积分:2894
    • 等级:
    • 排名:第12689名
    • 原创:113篇
    • 转载:3篇
    • 译文:0篇
    • 评论:28条
    文章分类