看百度技术专家如何深入研究,重复使用的代码经验——设计模式
关于设计模式
模式是从不断重复出现的事件中发现和抽象出的规律,是解决问题形成的经验总结。设计模式作为一种模式,最早应用于建筑领域,目的是在图纸上以一种结构化、可重用化的方法,获得建筑的基本要素。渐渐地,这种思想在软件领域流行起来,并获得发展,形成了软件开发的设计模式。软件设计模式被认为是一套被反复使用、多数人知晓、经过分类编目的代码设计经验的总结。最早的设计模式是由GOF在《Design Patterns:Elements of Reusable Object-Oriented Software》一书提出的, 这也被 称为经典设计模式,共有23个,分为创建型模式、行为型模式、结构型模式三类。使用设计模式的目的是为了提高代码的可重用性、让代码更容易被他人理解、系统更加可靠。
应用设计模式构建有弹性、可扩展的应用系统已成为软件人员的共识,越来越多的程序员需要掌握设计模式的内容。近年来,市场上也涌现了一些有关设计模式的书籍。这些书籍各有特点,多从生活中的示例入手,让读者对所述设计模式有一定的感性认识,然后引入设计模式概念,最后用计算机专业程序进行理性说明。通常,示例部分内容成熟。
本书内容
本书首先利用两章讲解了用到的预备知识:接口与抽象类,反射。然后从常用的23个设计模式中精选了10个进行讲解,包括2个创建型模式:工厂、生成器模式,4个行为型模式:观察者、访问者、状态、命令模式,4个结构型模式:桥接、代理、装饰器、组合模式。每个模式一般都包含以下四部分。
(1)问题的提出: 一般从生活中的一类常见事物引出待讨论的主题。
(2)模式讲解:用模式方法解决与之对应的最基本问题,归纳出角色及UML类图。
(3)深入理解模式:讲解笔者对模式的一些体会。
(4)应用探究:均是实际应用中较难的程序,进行了详细的问题分解、分析与说明。
由于篇幅限制小编,小编只在这里给大家展示目录及部分内容,有需要完整文档的程序猿(媛)可以关注文末公众号获取
本书特色
(1)示例丰富,讲解细致,有命令行程序,也有图形界面、Web程序等,涉及Java、JSP、JavaScript、Ajax 等技术。
(2)强调了语义的作用。-方面把设计模式抽象转化成日常生活中最朴实的语言;另一方面把生活中对某事物“管理”的语言转译成某设计模式。相比而言,后者更为重要。
(3)强调了反射技术的作用。对与反射技术相关的设计模式均做了详细的论述。
(4)提出了如何用接口思维巧妙实现C++标准模板库方法功能的技术手段。
学习设计模式方法
(1 )在清晰设计模式基础知识的基础上,认真实践应用探究中的每个示例,并充分分析,加以思考。
(2)学习设计模式不是一朝-夕的事,不能好高骛远。它是随着读者思维的发展而发展的,一定要在项目中亲身实践,量变引起质变,有句话说得好:“纸上得来终觉浅,绝知此事要躬行”。
(3)加强基础知识训练,如数据结构、常用算法等。基础知识牢固了,学习任何新事物都不会发慌,有信心战胜它。否则,知识学得再多,也只是空中楼阁。
(4)不要为了模式而模式,要在项目中综合考虑,统筹安排。
第1章接口与抽象类
1.1语义简单描述
1.2与框架的关系
1.3拓展研究
1.3.1柔性多态
1.3.2借鉴STL标准模板库
第2章反射
2.1反射的概念
2.2统一形式调用
2.3反射与配置文件
第3章工厂模式
3.1问题的提出
3.2 简单工厂
3.3工厂
3.4抽象工厂,
3.5应用探究
3.6自 动选择工厂
第4章生成器模式
4.1问题的提出
4.2生成器模式
4.3深入理解生成器模式
4.4应用探究
第5章观察者模式
5.1问题的提出
5.2观察者模式
5.3深人理解观察者模式
5.4 JDK 中的观察者设计模式
5.5应用探究
第6章桥接模式
6.1问题的提出
6.2 桥接模式
6.3深入理解桥接模式
6.4 应用探究
第7章代理模式
7.1问题的提出
7.2代理模式
7.3虚拟代理
7.4远程代理
7.5计数代理
7.6动态代理
第8章状态模式
8.1问题的提出
8.2状态模式
8.3 深入理解状态模式
8.4应用探究
第9章访问者模式
9.1问题的提出
9.2访问者模式
9.3深入理解访问者模式
9.4应用探究
第10章命令模式
10.1问题的提出
10.2 命令模式
10.3深入理解命令模式
10.4应用探究
第11章装饰器模式
11.1问题的提出
11.2装饰器模式
11.3深入理解装饰器模式
11.4应用探究
第12章组合模式
12.1问题的提出
12.2组合模式
12.3深入理解组合模式
12.4应用探究
由于篇幅限制小编,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!不会只有大纲和目录,有需要的程序猿(媛)可以关注下方公众号获取
评论