win2ks

山高月小 水落石出

广义factory

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

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

ACE_SOCK_Acceptor和ACE_SOCK_Connector就是这样的工厂。

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

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

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

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

阅读更多
文章标签: 产品
个人分类: ACE
想对作者说点什么? 我来说一句

Matlab 广义高斯分布建模

2017年11月10日 301KB 下载

广义预测控制Matlab程序

2009年07月07日 4KB 下载

广义预测控制matlab仿真程序

2009年09月26日 3KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭