关于设计模式
模式是从不断重复出现的事件中发现和抽象出的规律,是解决问题形成的经验总结。设计模式作为一种模式,最早应用于建筑领域,目的是在图纸上以一种结构化、可重用化的方法,获得建筑的基本要素。渐渐地,这种思想在软件领域流行起来,并获得发展,形成了软件开发的设计模式。软件设计模式被认为是一套被反复使用、多数人知晓、经过分类编目的代码设计经验的总结。最早的设计模式是由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文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!不会只有大纲和目录,有需要的程序猿(媛)可以帮忙转发+关注,后台私信【学习】或【资料】获取