- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(C语言与设计模式
设计模式 关于软件设计方面的书很多,比如《重构》,比如《设计模式》。至于软件开发方式,那就更多了,什么极限编程、精益方法、敏捷方法。随着时间的推移,很多的方法又会被重新提出来。 其实,就我个人看来,不管什么方法都离不开人。一个人写不出二叉树,你怎么让他写?敏捷吗?你写一行,我写一行。还是迭代?写三行,删掉两行,再写三行。项目的成功是偶然的,但是项目的失败却有很多原因,管理混乱、需求混乱、设计低劣、代码质量差、测试不到位等等。就软件企业而言,没有比优秀的文化和出色的企业人才更重要的了。 从软件设计层面来说,一般来说主要包括三个方面: (1)软件的设计受众,是小孩子、老人、女性,还是专业人士等等; (2)软件的基本设计原则,以人为本、模块分离、层次清晰、简约至上、适用为先、抽象基本业务等等; (3)软件编写模式,比如装饰模式、责任链、单件模式等等。 从某种意义上说,设计思想构成了软件的主题。软件原则是我们在开发中的必须遵循的准绳。软件编写模式是开发过程中的重要经验总结。灵活运用设计模式,一方面利于我们编写高质量的代码,另一方面也方便我们对代码进行维护。毕竟对于广大的软件开发者来说,软件的维护时间要比软件编写的时间要多得多。编写过程中,难免要有新的需求,要和别的模块打交道,要对已有的代码进行复用,那么这时候设计模式就派上了用场。我们讨论的主题其实就是设计模式。 讲到设计模式,人们首先想到的语言就是c#或者是java,最不济也是c++,一般来说没有人会考虑到c语言。其实,我认为设计模式就是一种基本思想,过度美化或者神化其实没有必要。其实阅读过linux kernel的朋友都知道,linux虽然自身支持很多的文件系统,但是linux自身很好地把这些系统的基本操作都抽象出来了,成为了基本的虚拟文件系统。 举个例子来说,现在让你写一个音乐播放器,但是要支持的文件格式很多,什么ogg,wav,mp3啊,统统要支持。这时候,你会怎么编写呢?如果用C++语言,你可能会这么写。[cpp]?view plaincopyclass?music_file??{???HANDLE?hFile;???public:???void?music_file()?{}???virtual?~music_file()?{}???virtual?void?read_file()?{}???virtual?void?play()?{}???virtual?void?stop()?{}???virtual?void?back()?{}???virtual?void?front()?{}???virtual?void?up()?{}???virtual?void?down()?{}};???其实,你想想看,如果用C语言能够完成相同的抽象操作,那不是效果一样的吗?[cpp]?view plaincopytypedef?struct?_music_file??{???HANDLE?hFile;???void?(*read_file)(struct?_music_file*?pMusicFile);???void?(*play)(struct?_music_file*?pMusicFile);???void?(*stop)(struct?_music_file*?pMusicFile);???void?(*back)(struct?_music_file*?pMusicFile);???void?(*front)(struct?_music_file*?pMusicFile);???void?(*down)(struct?_music_file*?pMusicFile);???void?(*up)(struct?_music_file*?pMusicFile);}music_file;??有过面试经验的朋友,或者对设计模式有点熟悉的朋友,都会对单件模式不陌生。对很多面试官而言,单件模式更是他们面试的保留项目。其实,我倒认为,单件模式算不上什么设计模式。最多也就是个技巧。 单件模式要是用C++写,一般这么写。[cpp]?view plaincopy#include?string.h?#include?assert.h??class?object??{??public:???static?class?object*?pObject;????static?object*?create_new_object()???{???if(NULL?!=?pObject)???return?pObject;????pObject?=?new?object();???assert(NULL?!=?pObject);???return?pObject;???}???private:???object(
您可能关注的文档
最近下载
- 俄国构成主义设计运动报告.ppt VIP
- 2025南方电网保山供电局项目制用工招聘(3人)笔试参考题库附答案解析.docx VIP
- 2025年广东省中学生天文知识竞赛试题(及答案).docx VIP
- 电镀基础知识100问.pdf VIP
- 党课:9.3纪念中国人民抗日战争暨世界反法西斯战争胜利80周年阅兵PPT课件.pptx VIP
- 高中数学--等差数列知识点归纳和习题检测.doc VIP
- 云南省2025年中考英语真题含答案.pptx VIP
- SW硅墨烯免拆模外墙保温系统工程作业指导书.docx VIP
- 2025-2026学年粤教花城版(2024)初中音乐七年级上册教学计划及进度表.docx
- 2025杭州电力设备制造有限公司招聘70人(第二批)笔试备考试题及答案解析.docx VIP
文档评论(0)