- 1、本文档共92页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * 说明要改动使用函数func * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 加法器例子 版本4:基于接口的思想 需要实现一个加法器:在这个加法器中,已经保存了被加数;现在需要传递加数给这个加法器,以让其返回加法计算结果。 普通加法器的被加数,必须是非负的整数,而带权重的加法器的被加数,没有任何限制 思路:定义一个加法接口的抽象类,然后让普通加法器和带权重的加法器从这个抽象类派生 代码1.7 加法器例子 版本4与版本3的比较 版本4和版本3都实现了数据和操纵数据的方法的封装 当引入带权重的加法器时,版本4和版本3都能做到代码的封闭性,即能封装这一变化点 但当限制普通加法器被加数为非负时,版本3无法应对,而版本4可以封装这一变化点。为什么? 版本4的耦合度小于版本3 继承是一种强耦合的关系,耦合于基类的接口、耦合于基类的实现 加法器例子——加法器的架构 版本4虽然也是继承,但ILAdder只是一个抽象类,只定义了接口,没有实现 显然版本4的耦合度小于版本3 另一种说法:架构设计就是一个解耦的过程 加法器例子 版本5:基于接口的思想的模板实现 没有虚函数,静态的多态 代码1.8 如何增加新的加法器? 对于模板代码,模板参数演绎是比较好的阅读方法 版本6:面向方面的思想 靠增加基类来扩展加法器,而不是增加派生类扩展加法器 代码1.9 如何增加新的加法器? 加法器例子 何为方面? CLNormalImpl、CLWeightingImpl,以及以后可能新增的CL***Impl,实际上代表了如何进行加法运算这一方面的问题,是对加法运算的抽象 假设现在需要在加法运算之前,对加法器进行安全性检查,而检查的方法又多种多样。 安全性检查就代表了加法器另一方面的问题。这样一来加法器就需要两个模板参数,一个代表如何进行加法运算的抽象,另一个代表如何进行安全性检查的抽象 加法器的小结 结构化思想实现的加法器,没有做到封装,也不能容纳变化点; 基于对象的方法进了一步,它所实现的加法器做到了封装,但没有容纳变化点; 而面向对象方法所实现的加法器,则做到了上述两点; 基于接口的设计方法,则更进了一步,不仅实现了变化点的封装,还降低了代码的耦合度,提高了扩展性。 另外,本节也给出了两种基于模板的加法器实现。它们与前面提到的几种方法孰优孰劣,则是仁者见仁智者见智了,不同的场景可能会有不同的答案。 总体的学习方法——系统观 两层映射的重要性 高级语言 底层物理模型 软件架构 核 心 课 程 及 课 程 设 计 猜 测 、 实 证 、 构 建 第一讲 前言 教学目的 课程主要内容及安排 学习方法 学习资料推荐 编程环境介绍 学习资料推荐 学习中的困惑 漫无目的、缺乏指导,不知道该怎么样学习 基本的方法 看书+实践 方向不明确 * 学习资料推荐 高度重视语言的学习 学好C和C++,暂时不要盲目学Java等语言,限制今后的技术道路 C和C++程序贴近机器(大多数操作系统都是基于C的)、高性能,将使你更能深入理解计算机系统和算法,在技术道路上走得更远 语言的学习不仅仅是语法的学习,最主要的是其背后蕴藏的程序设计思想、软件架构思想的学习 要知道这些思想的来龙去脉 到了一定程度后,保持每年都能学种新语言,为什么?(有些思想是某种语言特有的) * 书籍推荐(假定有基本C基础) 深入理解计算机系统 C学习 C陷阱与缺陷 C和指针 基本C++学习 Essential C++ Effective C++ More Effective C++ C++沉思录中面向对象的部分 设计模式精解 深入C++学习 深度探索C++对象模型 * 书籍推荐(假定有基本C基础) 模版学习 C++ Template:Complete Guide Modern C++ Design 模版库学习 C++标准程序库 Effective STL STL源码剖析 C++学习收工 Exceptional C++ More Exceptional C++ C算法卷一、卷二 * 学习资料推荐 语言到了一定程度,可以进行系统的学习 建议首先学习Windows操作系统 Windows比Linux先进(内核结构,线程) 学习windows能尽快熟悉先进的软件架构(各种架构库,天生的消息循环观察者) * Windows学习书籍推荐 WindowsAPI学习 Programming windows(上下册) Windows核心编程 MFC学习 MFC基本使用的学习 深入浅出MFC COM
您可能关注的文档
- 机锋网宣传资源与类型汇总201203.pptx
- 机辅技术与英语教学改革.ppt
- 杀它仗-鼠害终结者.ppt
- 杀毒软件及解决方案.ppt
- 杀毒软件的安装和病毒库的升级.ppt
- 机顶盒故障处理经验交流20101130.ppt
- 杀虫剂的过去、现在与将来.ppt
- 杀手里昂(英语展示).pptx
- 杂交育种与诱变育种基因工程.ppt
- 杂交育种与诱变育种课件(我用).ppt
- 某区纪委书记年度民主生活会“四个带头”个人对照检查材料.docx
- 某县纪委监委2024年工作总结及2025年工作计划.docx
- 某市场监督管理局2024年第四季度意识形态领域风险分析研判报告.docx
- 县委书记履行全面从严治党“第一责任人”职责情况汇报.docx
- 税务局党委书记2024年抓党建工作述职报告.docx
- 某市税务局副局长202X年第一季度“一岗双责”履行情况报告.docx
- 副县长在全县元旦春节前后安全生产和消防安全工作部署会议上的讲话.docx
- 某市委书记个人述职报告.docx
- 某县长在县委常委班子年度民主生活会个人对照检查材料1.docx
- 某县长在县委常委班子年度民主生活会个人对照检查材料.docx
文档评论(0)