博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
23种设计模式的C++实现
阅读量:4681 次
发布时间:2019-06-09

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

之前看Head First设计模式的时候照着书上的代码实现了一个C++版本(书上是Java版本的),代码上传在。

当时因为能力有限,没有直接选择看GOF的《设计模式:可复用面向对象软件的基础》。最近一个月在Windows上写了点QT的小程序,对C++及设计模式有了点认识,回头再来看GOF的大作也不觉得有那么的难了。所以抽空把这本书通读了一遍,虽然书上本来就有些C++的代码,但是基本上都是基于一个特定的场景的,且很多都不全,因此我就顺便把里面所有的模式都写了一遍并放到Github上去了,地址如下。所有代码花了我三天多一点的时间,从周六开始写,到今天周二早上。

所有代码都是该模式的Demo版,没有预设的场景,没有使用第三方库,只用到了string,vector,map这几个STL,因此直接原生C++即可编译,我的测试环境为Ubuntu 12.04 64bit。

之前一直在做Linux开发,所以对C语言比较熟,直观的感觉就是C语言好强大,效率高,依赖少,运行容易。最近做了点C++,相对于C而言,执行效率几乎没降低,而开发的效率大大提高了。个人感觉我在使用C++的时候,有以下一些非常方便的特性:

  1. 强大的STL可以使用,像vector,string,map等等这些用起来真是太舒服了。
  2. 函数重载真是太方便了,以前为非要起一个不一样的函数名真是麻烦,有时候还不得不用上foo1等这样的数字后缀法。
  3. 形参默认值,不经常改变的参数直接加个默认值,方便极了。
  4. 针对接口编程。这个是设计模式的一个重要的原则,通过C++的虚函数可以很好地实现这一点。

感觉以后能用C++的地方都不想再用C了。

欢迎大家针对代码提意见,欢迎讨论。

 

转载于:https://www.cnblogs.com/clpszpp/p/gof_design_patterns.html

你可能感兴趣的文章
Mysql全文索引
查看>>
jmeter(四十四)常用性能指标分析
查看>>
F - 八苦を滅した尼公 POJ - 2763 线段树LCA
查看>>
通过jQuery源码学习javascript(一)
查看>>
源码阅读经验谈-slim,darknet,labelimg,caffe(1)
查看>>
SecureCRT配色方案
查看>>
Unity3D 关于yield在collider中的使用
查看>>
spring-mvc xml文件的最基本配置
查看>>
word 新建一行文字不能左对齐
查看>>
jquery选择器
查看>>
IT公司的等级观念
查看>>
百度编辑器ueditor1.4.3配置记录
查看>>
ubuntu12.04开启Framebuffer
查看>>
【问题和解决】python中nltk与nltk_contrib的关系
查看>>
闭包的探索
查看>>
内存泄漏
查看>>
编程之美 2.12 快速寻找满足条件的两个数 解法三证明 (算法导论 第二版 2.3-7 在n个元素的集合S中找到两个和为x的元素)...
查看>>
open_basedir restriction in effect,解决php引入文件权限问题
查看>>
微信小程序获取用户信息解密AES并且注意如何获取unionid
查看>>
JavaScript设计模式----1
查看>>