首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

Factory模式的优越性可以用template代替吗?该怎么解决

2012-03-03 
Factory模式的优越性可以用template代替吗?刚开始看设计模式,感觉Facotry的优越性完全可以由template来实

Factory模式的优越性可以用template代替吗?
刚开始看设计模式,感觉Facotry的优越性完全可以由template来实现啊?Java没有template而CPP有,因此不需要Facotry。
各位大侠给解释一下?

[解决办法]
我觉得,Factory模式的优势(确切的说应该是作用)是控制了对象的创建,这个对比较复杂的对象显得更有意义,而template作为一个语言特性,为我们实现范型提供了方便的语言支持.所以它们应该是不同领域的两个概念.非要说它们有什么联系的话,我想应该是我们可以使用template来实现一个范型的厂,真真做到 "要什么造什么 ",感觉比用虚函数实现的厂要方便不少:)
[解决办法]
不同的概念,一个通过virtual函数实现运行时多态,一个使用编译支持实现编译时多态,也许在某些地方效果有些类似,但是不得不搞清楚的是,实现代码改变了,如果使用Factory,客户代码理论上不需要重新编译,但是使用template就不一样了,需要重新编译然后连接。

热点排行