您的位置:首页 > 编程语言 > C语言/C++

设计模式 原型模式与C++ & 设计模式的思考

2015-08-03 14:01 344 查看

原型模式与C++ & 设计模式的思考

1. 原型模式与C++

看了原型模式,似乎原型模式在C++就是拷贝构造函数。不知道为什么网上还能有人写出原型模式的C++实现,然后在代码中的原型模式拷贝操作仅仅是返回拷贝构造函数的结果?加一层操作这样做有什么意义?在我百思不得其解的时候,有一位大神指点了我,令我恍然大悟:C++的拷贝构造函数不能是虚函数,因此两个指向派生类的基类指针之间进行深拷贝而不依赖派生类,单凭拷贝构造函数是做不到的。这就是原型模式在C++中用途所在。如:


prototype *ptype1 = new concreateprototype1();
prototype *copytype1 = ptype1->clone();//copytype1无需知道ptype1指向哪个派生类,但是可以实现对ptype1的派生类部分拷贝,做到了面向接口编程


2. 设计模式的思考

另外,我发现设计模式是一个相当混乱的领域,有的人根本不懂设计模式的思想就大谈设计模式,有些博客引用各种案例但最后还是没有说出重点,大概是作者本人也不懂,写的确实是无厘头。有的人认为学习设计模式是写出优雅的架构必不可少的,有的人认为设计模式就是忽悠人的毫无没有实际用处。但我相信任何事物存在都有其合理的地方,设计模式也有其存在的必要性,不能因为有些人用不好、体会不到它的用处就断然说它无用,引用知乎上的一段答案来结束本文:



离开问题的去谈解决方案,是个蛋疼的事情。你说从a点到b点,什么样的交通方式最快?自驾,地铁,高铁,还是飞机?我说我去楼下超市,电梯最快。 问题的分析,设计,解决方案,怎么都不会离开问题自身的场景,而设计模式的诞生,本身就是一个经典问题的典型解决方案,没人要你学会了点订钉子的本事,看到的到处就是钉子。 模式的使用合适与否,正确与否,和使用的人有关,和模式是否有用无关。 会了点模式,到处在代码里加,是个sb的行为。看到别人说无用,跟着就说无用,难道不是sb? 为什么在十几年前,没看到有人,在网上主动发布过,有关经典结构的内容? 一句话,师傅引进门,修行在各人,设计模式,是解决某种问题的结构总结。 会不会用,怎么用,看你自己的能力。 谁能说在万级代码里面,没有设计模式的影子出现?



3. 参考链接:

知乎:如何正确地使用设计模式?

http://www.zhihu.com/question/23757906

博文:c++ 设计模式之原型模式

作者:lbqBraveheart

http://blog.csdn.net/lbqbraveheart/article/details/7086883
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: