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