博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式 原型模式与C++ & 设计模式的思考
阅读量:4087 次
发布时间:2019-05-25

本文共 1003 字,大约阅读时间需要 3 分钟。

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

1. 原型模式与C++

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

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

2. 设计模式的思考

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

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

3. 参考链接:

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

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

    作者:lbqBraveheart

转载地址:http://fnyii.baihongyu.com/

你可能感兴趣的文章
HTML5的表单验证实例
查看>>
JavaScript入门笔记:全选功能的实现
查看>>
程序设计方法概述:从面相对象到面向功能到面向对象
查看>>
数据库事务
查看>>
JavaScript基础1:JavaScript 错误 - Throw、Try 和 Catch
查看>>
SQL基础总结——20150730
查看>>
SQL join
查看>>
JavaScript实现页面无刷新让时间走动
查看>>
CSS实例:Tab选项卡效果
查看>>
前端设计之特效表单
查看>>
前端设计之CSS布局:上中下三栏自适应高度CSS布局
查看>>
Java的时间操作玩法实例若干
查看>>
JavaScript:时间日期格式验证大全
查看>>
pinyin4j:拼音与汉字的转换实例
查看>>
XML工具代码:SAX从String字符串XML内获取指定节点或属性的值
查看>>
时间日期:获取两个日期相差几天
查看>>
责任链模式 Chain of Responsibility
查看>>
高并发与大数据解决方案概述
查看>>
解决SimpleDateFormat线程安全问题NumberFormatException: multiple points
查看>>
MySQL数据库存储引擎简介
查看>>