关于工厂模式的一点个人看法

工厂模式有两个角色:工厂和产品
工厂的作用其实是个消息分派器,负责唤起产品的构造函数
产品的制造由自己的构造函数完成
模式并未带来工作方式的改变,只是改变了消息的流向

个人浅见,请大家多批评指点! ^_^

个人认为,Factory 实际上是多了一层,实现松耦合。
我的感受是在做 OO 设计时,如果觉得某个地方总是绑得太紧,
或者说,总觉得有个地方不对劲,那就可以考虑加多一个层。
这样,就多了一个迂回的地方,相对灵活了很多.

to iceant:
我也是这样想的,我们可以在这个层中决定创建哪个对象,而不必直接参与创建对象的活动.但是当我们要初始化的对象有很多基本数据类型时(从数据库抓出来的),那我们的初始化工作势必要传进很多参数,而此时再用工厂模式就不适合了.对此你有何看法?

我以前也讲了 GoF的模式是远离数据库的,首先你必须建立一层O/R Map,将关系数据库的数据转换成对象,这时才开始适合使用GoF设计模式。

数据库层的模式,有专门的EJB设计模式。

如此说来GoF模式强调的是操作模式,而将所有的数据特征封装成一个对象,或许不太恰当,就象C++的STL,将算法与数据结构剥离,我这样理解对吗?

基本对 算法与数据结构剥离