大家一起来说一说自己掌握的设计模式和在工作中的应用场景,分享经验

96掌门师兄 2013-08-30 03:29:45
加精
做了比较多的通讯和SDK,虽然是用C++,但是SDK对外的都是C的接口,而且项目中主要是消息封装,socket IO模型和多线程, 消息收发,业务比较少,所以用的OOP也比较少,用了很多年C++,却一直没有OOP的思想,代码中就是那么简单的几个类,设计模式只用过单例,观察者,工厂之类,对模块设计时应该注意的松耦合也注意的少。

不知道大家在工作中设计模式用的多不多,个人觉得对一个senior来说,不会设计模式和OOP,根本无法进行设计,写出来的代码也 “泰瑞博”。我平时写代码时也想好好分析一下,多用一些类进行封装,将业务进行抽象,使用设计模式,可是坑爹的公司压力就是那么大,一个任务下来就那么几天必须完成,根本来不及慢慢思考,就去编码了,跟team leader说多给点时间好好设计,就是浪费时间,他们只看结果。从来没有代码走读和重构。

我想很多C++程序员应该有和我一样的感受,所以,兄弟们分享一下自己使用过的设计模式和使用场景吧,顺便说一下自己掌握了多少个设计模式及工作年限等,方便膜拜。呵呵

...全文
25188 176 打赏 收藏 转发到动态 举报
写回复
用AI写文章
176 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_34367373 2016-05-17
  • 打赏
  • 举报
回复
打个酱油。。。。。。。。。
wjlsmail 2016-05-16
  • 打赏
  • 举报
回复
引用 94 楼 r3000 的回复:
推荐个学习设计模式的优秀代码资源: Delphi 中采用的VCL库, 这个库是使用Obejct Pascal写的,非C++,但设计模式其实在OO语言中是通用的, VCL是个设计的非常不错的框架,是一个宝库,一般人我不告诉他 ,内含很多优秀的设计模式,书上有的书上没有的都有。我做项目时经常参考并获益匪浅。。。 MFC没有VCL优秀,但用模式的地方也很多,看这个源码也可以。 因为设计模式的应用更多的是框架而非具体问题,所以一般应用最多的就是框架类库。 基本上优秀的框架中都有应用。
VCL的确是很优雅的
xijh12 2014-08-03
  • 打赏
  • 举报
回复
考虑设计模式的项目是艺术创作,不考虑设计模式就是一堆ABCD的累积,让人感觉非常乏味
LADYGAGA_XB 2013-10-08
  • 打赏
  • 举报
回复
在不知不觉中其实就一直在用了.. 设计模式就是处理问题的思路.
blueink_200451 2013-10-07
  • 打赏
  • 举报
回复
引用 98 楼 chenzhouce 的回复:
当你对自己的代码不断优化,重构,复用,心里想着如果别人用起来要易用,要可读性好,当你改到你可能改不下去的情况,忽然发现,卧槽这不是和XXX设计模式很相似!这时候你会充满极大的成就感。——设计模式本就是实践过程中总结出來的。
+1
lhw7791086 2013-10-06
  • 打赏
  • 举报
回复
u012319860 2013-10-03
  • 打赏
  • 举报
回复
也学了设计模式,但真正用起来的时候比较少。
Seven丨 2013-10-02
  • 打赏
  • 举报
回复
不明觉厉···
dahuatttt 2013-10-01
  • 打赏
  • 举报
回复
引用 83 楼 weiym 的回复:
我博客中有些关于设计模式的文章,可以参考下: http://www.cppblog.com/weiym/archive/2012/06/10/178319.html http://www.cppblog.com/weiym/archive/2012/06/12/178472.html 关于怎么学习设计模式: 1. 把GOF的设计模式看3遍以上,看懂为止 2. 看优秀开源代码,看别人是怎么使用设计模式的 3. 自己尝试实践和运用模式 C++ 支持多种范型,因此设计模式在C++使用不是很典型,纯面向对象语言,如java和C#,它们在设计模式使用上往往更彻底。 http://www.cppblog.com/weiym/archive/2013/04/27/199781.html 上面有人提到 “实习的时候,公司有一个从底层建起来的项目,我接触到的大概150w行代码,一些更底层的库我没权限看代码。用的就是全局的观察者模式,目的就是在任何一个类里的任何一个函数内都可以操纵所有的类和函数,使用起来非常方便,可以在任意的地方加任意的功能。更妙的是利用com接口的一些特性,可以根据类本身,获取一个com基类,再用这个基类加uuid就可以访问所有。” 个人不是很同意, 大型程序各个类可以随意相互访问,是什么一种情况?即使基于COM接口,也是一坨乱麻。 大型程序首先强调模块化,模块以独立接口的形式暴露给外部, 各模块单向依赖, 一层层往上搭。COM本身是个好东西 ,但是以COM接口的名义将所有功能耦合在一起,随意QueryInterface,随意调用就不对了, 这样的网状依赖可能你暂时自己用的爽了 ,但是以后会让程序很维护, 模块很难重用,不符合软件工程低耦合高内聚的原则。
惯例Mark一下
西瓜一片 2013-09-27
  • 打赏
  • 举报
回复
引用 103 楼 pengkui88 的回复:
感觉模式的东西都是静态的东东,关键是抽象出模式和模式的抽象能力
有同感。还得配合线程模型这些动态因素。
zhuangyi1 2013-09-22
  • 打赏
  • 举报
回复
我们专业也有开设这门课程《设计模式》,真心的,可能太笨,感觉很多东西都没理解,个人见解:设计模式是一种让你更加方便地去解决一些问题的比较简单的方法,不用,能实现功能可以,用之,使你的程序结构化,模式化,方便维护,方便第三者解读,更好。养成一种好的习惯,但也不要刻意去用一些你不怎么理解的模式。很多东西,做的多了,看的多了,就理解了,自然会用了,那是后话~
对月成3人 2013-09-20
  • 打赏
  • 举报
回复
看了一下,大家都是大神
tiantianxiecode 2013-09-18
  • 打赏
  • 举报
回复
很多人都是自己写项目的话怎么简单怎么写 维护项目就恨不得别人写的代码都是使用各种设计模式清清楚楚的
mearer 2013-09-15
  • 打赏
  • 举报
回复
mearer 2013-09-15
  • 打赏
  • 举报
回复
了解设计模式,但没怎么学
hqwwq 2013-09-14
  • 打赏
  • 举报
回复
回帖是一种品德。顶楼主。
ncist_jianeng 2013-09-13
  • 打赏
  • 举报
回复
按java编程思想说的,程序员分为类的创建者和客户端程序员。好吧,我是属于后者,基本上是使用框架,不用去考虑设计模式,只有前者写框架的人才会涉及。 不过当公司的项目大到一定程度的时候,还是会有架构的
傀儡师苏摩 2013-09-12
  • 打赏
  • 举报
回复
mark一下 菜鸟表示过来学习的
RannieR 2013-09-12
  • 打赏
  • 举报
回复
也不是说特意去套 只是自然而然的写出来的- - 单例工厂MVC比较多
瘦又美 2013-09-12
  • 打赏
  • 举报
回复
加载更多回复(156)

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧