设计模式 原型模式与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
相关文章推荐
- C语言程序的存储区域
- C语言中全局变量、局部变量、静态全局变量、静态局部变量的区别
- C++读取mat文件 & VS2010 环境配置
- C++读写.mat文件
- 2^k进制数问题(动态规划+高精度/C++)
- 中位数问题(/C++)
- 《C++编程思想》 第九章 命 名 控 制 (原书代码+知识点+习题+解答)
- c++中“计时器”、“sort”、“namespace”函数的用法
- AVL树的C语言实现
- 七巧板涂色 c++
- Unreal4 IOS上使用第三方库和C++11 特性问题解决
- Unreal4 C++ 错误指引
- Unreal4 C++使用注意事项
- C++输入cin详解
- C语言编程入门——常用运算符
- C语言中的const关键字
- HDU1253 胜利大逃亡 dfs,bfs C++
- C/C++ — memset() 函数详解及其作用介绍
- C语言深度解剖——读书笔记-9、指针和数组
- C++中将string转换为int