版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
思维导图PPT模板《面向对象开发参考手册》最新版读书笔记,下载可以直接修改对象模式参数设计方法领域数据面向对象工厂第章原则类模型接口知识组合测试语言重构本书关键字分析思维导图01内容提要第2章经典模式第4章测试驱动第1章转变观念第3章敏捷软件第5章重构方法目录030502040607第6章领域模型第8章应用实践第7章敏捷过程写在最后目录0908010内容摘要面向对象软件设计的经典书籍,如《敏捷软件开发》、《领域驱动设计》、《设计模式》、《测试驱动开发》、《极限编程》、《重构》等,已名声在外,其解读书籍也多如牛毛。但其往往只讲述某个方面,要整体理解,必须通读原著,阅读量颇大,特别原著比较深奥,短时间内很难完全理解。市面上缺乏整体归纳、提炼浓缩的书籍。《面向对象开发参考手册》致力于让读者形成一个整体、全面的概念和印象,浓缩、提炼了经典书籍的精华,结合作者自身十几年的经验,力争呈现一本深入浅出、兼收并蓄、涉及各个方面的综合版本,可以缩减学习的时间成本,并能够像工具书一样翻阅参考。《面向对象开发参考手册》写作之初是为了作者所在公司开发人员培训用。作者为公司人员进行了100多课时的培训,按照培训内容整理了本书。从这个角度来说,它特别适合开发人员学习使用,尤其适于那些刚毕业的“菜鸟”们学习使用。当然,学习是没有穷尽的,资深的开发人员,也可以经常翻阅本书来寻找灵感。内容提要面向对象的精髓在于“封装”。第1章转变观念应该尝试将问题域分解为责任,然后定义必需的对象来实现这些责任,让它对自己的行为负责。1.1传统的面向对象1.2重新认识对象1.3如何分解对象?1.4如何设计对象?第1章转变观念1.5设计对象的接口1.6改进对象的继承1.7设计抽象的系统1.8设计美的系统第1章转变观念第2章经典模式学习从来是没有诀窍的。2.1设计模式的基本原则2.2抽象工厂模式(Abstract...2.3抽象服务模式(Abstract...2.4无环访问者模式(Acyclic...2.5适配器模式(Adapter)2.6桥接模式(Bridge)010302040506第2章经典模式2.7生成器模式(Builder)2.8职责链模式(ChainofR...2.9命令模式(Command)2.10组合模式(Composite)2.11装饰模式(Decorator)2.12扩展对象模式(Extensio...010302040506第2章经典模式2.13外观模式(Façade)2.14工厂方法模式(Factory...2.15享元模式(Flyweight)2.16解释器模式(Interpret...2.17迭代器模式(Iterator)2.18中介者模式(Mediator)010302040506第2章经典模式第3章敏捷软件如果一定要说有,那么有三条:第一是重复;第二是重复;第三,还是重复。3.1基本原则3.2敏捷建模3.3按意图编程3.4软件的度量3.5延伸阅读:源代码就是设计12345第3章敏捷软件3.1.2包的设计原则3.1.1对象设计原则3.1基本原则3.2.2敏捷建模的原则和实践3.2.1关于建模的一些认识误区3.2敏捷建模3.3.1名字:选择语义清晰的名字3.3.2简单:做最简单但又能工作的事...3.3.3假设:做有根据的假设3.3.4注释:“不要注释”3.3按意图编程3.4.1对象的度量3.4.3测试的度量3.4.2包的度量3.4软件的度量第4章测试驱动我们的目的是设计“高内聚、松耦合”的软件以应对变化。4.1什么是TDD4.3开发工具的测试框架4.2测试技巧第4章测试驱动4.1.1测试原则:尽早、经常、自动化4.1.3模拟对象4.1.2验收测试4.1什么是TDD4.2.1测试之前的思想准备4.2.2测试之间的关系——相互独立的...4.2.3什么时候写测试4.2.4如何开始写测试——断言优先4.2.5如何选择测试数据——显然数据4.2.6测试如何组织——测试列表0103020405064.2测试技巧4.2.7测试哪些东西4.2.8简单的测试4.2.9易读的测试4.2.10可维护的测试4.2.11可运行的测试4.2.12可调试的测试0103020405064.2测试技巧4.2.13测试的初始化4.2.14使用断言的消息参数4.2.15使用代码覆盖率工具4.2.16测试代码也要不断重构4.2测试技巧第5章重构方法对象是有责任的实体,封装是隐藏一切,包括数据、设计细节、实现细节、派生类、实例化规则等。5.1软件的味道5.2如何开始重构5.3重构方法索引5.4重新组织方法5.5在对象间迁移特性5.6重新组织数据010302040506第5章重构方法5.7简化条件表达式5.8简化方法调用5.9处理概括关系5.10封装对象的创建5.11大型重构12345第5章重构方法5.1.1重复代码5.1.2过长方法5.1.3过大类5.1.4过长参数列表5.1.5发散变化5.1.6霰弹式手术0103020405065.1软件的味道5.1.7依恋情结(交往不当)5.1.8数据泥团5.1.9基本类型偏执5.1.10switch语句5.1.11平行继承体系5.1.12冗赘类0103020405065.1软件的味道5.1.13夸夸其谈的未来性5.1.14令人迷惑的临时字段5.1.15过度耦合的消息链5.1.16中间转手人5.1.17狎昵关系5.1.18异曲同工的类0103020405065.1软件的味道5.2.1什么时候重构5.2.3怎样开始重构——掌握好重构的...5.2.2什么时候不能重构5.2如何开始重构5.4.1提炼方法5.4.2内联方法5.4.3内联临时变量5.4.4引入解释变量5.4.5移除对参数的赋值5.4.6用方法对象替代方法0103020405065.4重新组织方法5.4.7用查询替代临时变量5.4.9替换算法5.4.8分解临时变量5.4重新组织方法5.5.1提炼类5.5.2隐藏委托5.5.3内联类5.5.4引入外加方法5.5在对象间迁移特性5.5.5引入本地扩展5.5.6迁移字段5.5.7迁移方法5.5.8移除中间人5.5在对象间迁移特性5.6.1双向关联改为单向关联5.6.2引用对象改为值对象5.6.3单向关联改为双向关联5.6.4值对象改为引用对象5.6.5复制被观察的数据5.6.6封装集合0103020405065.6重新组织数据5.6.7封装字段5.6.8用对象替代数组5.6.9用对象替代数据值5.6.10用符号常数替代魔幻数字5.6.11用数据类替代记录5.6.12用字段替代子类0103020405065.6重新组织数据5.6.13用类替代类型码5.6.14用状态/策略模式替代类型码5.6.15用子类替代类型码5.6.16自封装字段5.6重新组织数据5.7.1合并条件表达式5.7.2合并重复的条件片断5.7.3分解条件式5.7.4引入断言5.7.5引入空对象5.7.6移除控制标志0103020405065.7简化条件表达式5.7.7用命令模式替代条件调度5.7.8用策略模式替代条件逻辑5.7.9用多态替代条件式5.7.10用卫述语句替代嵌套条件式5.7.11用状态模式替代状态改变条件...123455.7简化条件表达式5.8.1增加参数5.8.2构造函数链5.8.3组合方法5.8.4封装向下转型5.8.5隐藏方法5.8.6引入参数对象0103020405065.8简化方法调用5.8.7把聚集操作迁移到收集参数5.8.8把聚集操作迁移到访问者模式5.8.9把装饰功能迁移到装饰者模式5.8.10参数化方法5.8.11保持对象完整5.8.12移除参数0103020405065.8简化方法调用5.8.13移除设置方法5.8.14重命名方法5.8.15用工厂方法替代构造函数5.8.16用异常替代错误码5.8.17用测试替代异常5.8.18用组合模式替代隐含树0103020405065.8简化方法调用5.9.1折叠继承体系5.9.2提炼适配器模式5.9.3提炼组合模式5.9.4提炼接口5.9.5提炼子类5.9.6提炼超类0103020405065.9处理概括关系5.9.7塑造模板方法模式5.9.8上移构造函数5.9.9上移字段5.9.10上移方法5.9.11下移字段5.9.12下移方法0103020405065.9处理概括关系5.9.13用继承替代委托5.9.14用观察者模式替代硬编码通知5.9.15用解释器模式替代隐式语言5.9.16用委托替代继承5.9.17用组合模式替代一/多之分5.9.18统一接口0103020405065.9处理概括关系5.10.1用工厂封装类5.10.2用生成器模式封装组合模式5.10.3提炼参数5.10.4内联单件模式5.10封装对象的创建5.10.5用工厂方法引入多态创建5.10.6用单件模式限制实例化5.10.7把创建知识迁移到工厂5.10.8用创建方法替代构造函数5.10封装对象的创建5.11.1过程化设计转化为对象设计5.11.2提炼继承体系5.11.3分离域和表示层5.11.4梳理分解继承体系5.11大型重构第6章领域模型程序的高內聚低耦合易扩展少注释,整体来讲本书理论性很强,适合有数年代码经验者读。6.1目标6.2基本构件6.3深层模型6.4挖掘隐含概念6.5柔性设计6.6战略性设计010302040506第6章领域模型6.7限界上下文6.9大比例结构6.8模型精炼第6章领域模型6.1.1消化知识6.1.3模型和代码绑定6.1.2交流语言6.1目标6.2.1分离领域6.2.2关联6.2.3实体6.2.4值对象6.2.5服务6.2.6模块(包)0103020405066.2基本构件6.2.7聚合6.2.9仓储6.2.8工厂6.2基本构件6.4.1概念挖掘6.4.2显式约束6.4.3作为领域对象的流程6.4.4规格模式6.4挖掘隐含概念6.5.1释义接口6.5.2无副作用函数6.5.3断言6.5.4概念轮廓6.5柔性设计6.5.5孤立类6.5.7声明性设计6.5.6操作封闭6.5柔性设计6.7.1持续集成6.7.2上下文映射6.7.3共享内核6.7.4客户/供应商开发团队6.7.5同流者6.7.6防腐层0103020405066.7限界上下文6.7.7隔离方式6.7.9公布语言6.7.8开放主机服务6.7限界上下文6.8.1核心领域6.8.2通用子域6.8.3领域愿景声明6.8.4突出核心6.8模型精炼6.8.5内聚机制6.8.7抽象核心6.8.6隔离核心6.8模型精炼6.9.1渐进顺序6.9.2系统隐喻6.9.3职责层6.9.4知识级别6.9.5插件框架123456.9大比例结构第7章敏捷过程本书基本内容只是对于知识的描述,并没有通过举例的方式让读者提炼出自己的知识,不利于基础阶段同学的学习。7.1敏捷宣言7.2敏捷过程的原则7.3典型的敏捷过程7.4敏捷实践第7章敏捷过程7.3.1计划7.3.3重构7.3.2测试7.3典型的敏捷过程7.4.2扩展实践7.4.1基本实践7.4敏捷实践第8章应用实践面向对象的思想其实在架构设计中贯穿始终,本书面向对象的设计思想没有形成闭合架构设计流程实践,是一种缺憾,更像是我们用PPT演讲培训的详细描述。8.1培养敏感性8.2统一版本(产
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中老师年度教学计划
- 2024年初中班主任工作计划书范文
- 临沂大学《展示设计》2021-2022学年第一学期期末试卷
- 2024幼儿园小班9月份工作计划
- 临沂大学《采购管理》2021-2022学年第一学期期末试卷
- 聊城大学《重彩画技法》2021-2022学年第一学期期末试卷
- 聊城大学《软件项目管理》2023-2024学年第一学期期末试卷
- 8中学二年级班主任工作计划
- 客服年终个人工作总结以及下年计划
- 拆除、爆破工程应急预案演练工作计划范文
- 国开机考答案-工程力学(本)(闭卷)
- 降温池施工方案
- 2024医院护士聘用合同
- 找人办事协议
- TD/T 1060-2021 自然资源分等定级通则(正式版)
- GB/T 17241.1-2024铸铁管法兰第1部分:PN 系列
- 2024年江苏省苏锡常镇四市高三二模语文答案讲解课件
- 护理常见操作并发症的预防及处理培训
- 会计信息化习题+答案
- 购物系统毕业设计答辩问题
- 上市公司股权投资协议书(2篇)
评论
0/150
提交评论