前言
设计模式包含了大量的编程思想,真正掌握并不容易。市面上关于设计模式的书籍并不少,但大多讲解得比较晦涩,没有真实的应用场景和框架源码支撑,学习后,只知其形,不知其神,就会造成这样的结果: 知道各种设计模式,但是不知道怎样应用到真实项目中。本书针对上述问题,有针对性地进行了升级,以有趣的故事为背景,采用框架源码分析的方式,让文章内容生动有趣好理解。
本书主要内容。
本书通过有趣的案例场景以及设计模式在Spring框架、JDK中的应用讲解设计模式,帮助开发人员能够更好更快地理解和应用设计模式。
本书共23章,主要内容如下:
第1章,介绍设计模式的分类、六大原则,以及23种设计模式的总体情况,让读者在学习之前,对设计模式有整体的认识。
第2~23章,通过有趣的场景案例讲解设计模式的概念、使用场景以及使用方法。
本书特点。
以浅显有趣的案例,说明设计模式的概念和应用。
以简单直观的UML类图方式说明设计模式中各种角色的关系。
丰富有趣的故事穿插全文,寓教于乐,让学习不再枯燥。
采用由浅入深,层层深入,步步推进的讲解方式,让复杂的设计模式变得简单易懂。
如何阅读本书。
这是一本偏向动手实战的技术图书,主要介绍设计模式解决方案的具体落地方法。本书的每一章都会重点介绍与该章主题相关的设计模式,可以从第1章开始阅读,也可以根据需要从任意一章进行阅读。在阅读的过程中,读者不仅要仔细阅读每一章的文字,以及案例场景设计,同时更要多阅读代码,或者自己动手编写代码。
深入理解设计模式学习收获
理解设计模式的意义和实现。
写出优雅的代码,轻松且无障碍。
提升程序员在项目开发过程中发现问题和解决问题的能力。
让代码可重用、可读、可靠、可维护、可扩展。
由于作者水平有限,书中不足之处在所难免,诚挚期盼专家和读者给予批评和指正。
商品简介
本书以作者与虚拟女友(小璐)在生活中遇到的各种问题作为主线,引出设计模式的各种功能、用途,以及解决方法,系统介绍了23种设计模式,根据具体的实例形象化、具体化地进行了代码的编写和详细讲解,让那些本来对设计模式不太了解、一知半解、只有概念的读者,彻底了解和掌握常用的设计模式使用场景及使用方式,并掌握每个设计模式的UML结构和描绘方式。本书共23章,包括认识设计模式、单例模式、工厂模式、建造者模式、原型模式、适配器模式、装饰器模式、外观模式、桥接模式、组合模式、享元模式、代理模式、策略模式、命令模式、状态模式、模板方法模式、备忘录模式、中介者模式、观察者模式、迭代器模式、责任链模式、访问者模式、解释器模式。通过以上的知识,让你从模式小白直接升级为模式大神!本书所需源代码,均可通过本书配套下载链接获得。
本书适合编程初学者或希望在面向对象编程上有所提高的开发人员阅读。
作者简介
林祥纤
阿里巴巴前高级研发工程师,51CTO特约合作讲师,擅长社交、电商、Spring Boot、分布式架构、微服务架构等领域软件系统的架构设计、系统分析及性能优化等。
目录
前言认识设计模式/1.1软件设计模式概述/1.1.1什么是软件设计模式/1.1.2为何学习设计模式/1.2GoF的23种设计模式的分类和功能/1.2.1设计模式的分类/1.2.2设计模式的功能/1.3设计模式的六大原则/1.3.1六大原则/1.3.2一句话概括设计模式六大原则/创建型模式之单例模式/2.1单例模式的基本概念/2.1.1什么是单例模式/2.1.2单例模式的优缺点/2.1.3单例模式的使用场景/2.1.4单例模式的类图/2.1.5单例模式的实现方式/2.2单例模式的实现:懒汉模式/2.2.1准备工作:构建一个女朋友/2.2.2懒汉模式:你是我的专享/2.2.3线程安全问题:出现了两个小璐/2.2.4指令重排/2.2.5懒汉模式小结/2.3单例模式的实现:饿汉模式/2.3.1饿汉模式/2.3.2饿汉模式小结/2.4单例模式的实现:静态内部类/2.4.1静态内部类/2.4.2静态内部类小结/2.5单例模式的实现:枚举类型/2.5.1枚举类型/2.5.2枚举类型小结/2.6单例模式在Spring框架和JDK源码中的应用/2.6.1在JDK源码中的应用/2.6.2在Spring源码中的应用/2.7单例模式实战:线程池/2.7.1普通方式实现/2.7.2单例模式实现/深入理解设计模式创建型模式之工厂模式/3.1工厂模式/3.1.1工厂模式概念/3.1.2简单理解工厂模式/3.2无工厂时代/3.2.1无工厂时代类图:汽车图纸/3.2.2无工厂时代编码:制造汽车/3.3工厂模式之简单工厂模式/3.3.1简单工厂模式的诞生/3.3.2简单工厂模式构建汽车/3.3.3简单工厂模式小结/3.4工厂模式之工厂方法模式/3.4.1工厂方法模式/3.4.2工厂方法模式实现汽车的构建/3.4.3简单工厂扩展特性说明/3.5工厂模式之抽象工厂模式/3.5.1抽象工厂模式/3.5.2抽象工厂模式实现汽车的构建/3.6工厂模式在Spring框架和JDK源码中的应用/3.6.1Spring中的工厂模式/3.6.2JDK中的工厂模式/3.7工厂模式实战之不同的支付渠道/3.8工厂模式总结/3.8.1工厂模式特点/3.8.2工厂模式区别/3.8.3工厂模式适用场景/目录建造者模式/4.1建造者模式概念/4.1.1什么是建造者模式/4.1.2建造者模式的结构和类图/4.1.3建造者模式的优缺点/4.2建造者模式之组装计算机/4.2.1无建造者模式/4.2.2建造者模式/4.3建造者模式在Spring框架和JDK源码中的应用/4.3.1JDK中的建造者模式/4.3.2Spring中的建造者模式/创建型模式之原型模式/5.1原型模式概念/5.1.1原型模式定义及优势/5.1.2原型模式主要角色和类图/5.1.3原型模式适用场景及在Java中的实现/5.2原型模式之复印简历/结构型模式之适配器模式/6.1适配器模式概念/6.1.1适配器模式基本概念/6.1.2适配器模式适用场景和分类/6.2适配器模式之类适配器/6.2.1类适配器基本概念/6.2.2电压转换例子说明/6.2.3电压转换/6.3适配器模式之对象适配器/6.3.1对象适配器模式基本概念/6.3.2电压转换例子说明/6.3.3电压转换/6.4适配器模式之缺省适配器/6.4.1缺省适配器模式基本概念/6.4.2电压转换例子说明/6.4.3电压转换/6.4.4电压转换在jdk1.8+的实现/6.5适配器模式在Spring框架中的应用/6.5.1在Spring中的应用/6.5.2导出数据类型/结构型模式之装饰器模式/7.1装饰器模式概念/7.2照相机美颜滤镜/7.2.1照相机类图/7.2.2照相机编码/7.2.3装饰器模式小结/7.3装饰器模式在Spring框架和JDK源码中的应用/7.3.1在Spring中的应用/7.3.2在JDK中的应用/结构型模式之外观(门面)模式/8.1外观模式概念/8.2外观模式之一键开关/8.2.1一键开关类图/8.2.2一键开关编码/8.2.3外观模式的优缺点/8.2.4外观模式与适配器模式的区别/8.3外观模式在Spring框架和SLF4J中的应用/8.3.1在Spring中的应用/8.3.2在SLF4J中的应用/结构型模式之桥接模式/9.1桥接模式之消息发送/9.1.1消息发送场景问题/9.1.2消息发送1.0之只有消息发送方式/9.1.3消息发送2.0之加入消息类型/9.1.4消息发送3.0二位扩展问题分析/9.2桥接模式基本概念/9.3桥接模式之消息发送/9.4桥接模式总结以及应用场景/9.4.1桥接模式总结/9.4.2桥接模式的应用场景/9.5桥接模式在JDK源码中的应用/结构型模式之组合模式/10.1组合模式基本概念/10.2组合模式之公司部门管理/10.2.1公司管理分析/10.2.2公司管理编码/10.3组合模式在Spring框架和JDK中的应用/10.3.1在Spring中的应用/10.3.2在JDK中的应用/结构型模式之享元模式/11.1享元模式/11.1.1享元模式(Flyweight)基本概念/11.1.2享元模式之共享东西/11.2享元模式在框架中的应用/结构型模式之代理模式/12.1代理模式概念/12.2代理模式之静态代理/12.2.1静态代理用户服务的实现/12.2.2静态代理方法耗时统计/12.3代理模式之动态代理/12.3.1JDK动态代理类/12.3.2使用JDK动态代理类方法耗时统计/12.3.3在Spring框架的说明/行为型模式之策略模式/13.1策略模式概念/13.2策略模式之出行旅游/13.3策略模式之锦囊妙计/行为型模式之命令模式/14.1命令模式之烧烤店/14.1.1烧烤店无命令模式/14.1.2烧烤店使用命令模式升级/14.2命令模式概念/行为型模式之状态模式/15.1状态模式基本概念/15.2状态模式之电梯系统/15.2.1电梯系统分析/15.2.2非状态模式的电梯系统/15.2.3状态模式的电梯系统/行为型模式之模板方法模式/16.1模板方法模式/16.1.1模板方法模式(Template)基本概念/16.1.2模板方法模式之简历模板/16.2模板方法在Spring框架和JDK中的应用/16.2.1在Spring中的应用/16.2.2在JDK中的应用/行为型模式之备忘录模式/17.1备忘录模式基本概念/17.2备忘录方法之记事本/行为型模式之中介者模式/18.1中介者模式基本概念/18.2中介者模式之邮局传情/行为型模式之观察者模式/19.1观察者模式(Observer)基本概念/19.2观察者模式之订阅新闻/行为型模式之迭代器模式/20.1迭代器模式/20.2迭代器模式基本概念/20.3为什么需要迭代器/20.4迭代器模式之数据迭代标准化/20.5JDK中的迭代器/行为型模式之责任链模式/21.1责任链模式概念/21.2责任链模式之敏感信息过滤/21.2.1未使用责任链模式过滤敏感信息/21.2.2使用责任链模式过滤敏感信息/21.3责任链模式之敏感信息过滤升级版本/21.4责任链模式之信息双向过滤/行为型模式之访问者模式/22.1访问者模式概念/22.2无访问者模式之绩效报表/22.3访问者模式之绩效报表/行为型模式之解释器模式/23.1解释器模式概念/23.2解释器模式之简单计算器/23.2.1计算器1.0/23.2.2计算器2.0/23.3解释器模式之简单计算器3.0/23.3.1计算器3.0/23.3.2计算器终代码分析/291
内容摘要
本书以作者与虚拟女友(小璐)在生活中遇到的各种问题作为主线,引出设计模式的各种功能、用途,以及解决方法,系统介绍了23种设计模式,根据具体的实例形象化、具体化地进行了代码的编写和详细讲解,让那些本来对设计模式不太了解、一知半解、只有概念的读者,了解和掌握常用的设计模式使用场景及使用方式,并掌握每个设计模式的UML结构和描绘方式。本书共23章,包括认识设计模式、单例模式、工厂模式、建造者模式、原型模式、适配器模式、装饰器模式、外观模式、桥接模式、组合模式、享元模式、代理模式、策略模式、命令模式、状态模式、模板方法模式、备忘录模式、中介者模式、观察者模式、迭代器模式、责任链模式、访问者模式、解释器模式。通过以上的知识,让你从模式小白直接升级为模式大神!本书所需源代码,均可通过本书配套下载链接获得。本书适合编程初学者或希望在面向对象编程上有所提高的开发人员阅读。
主编推荐
23种设计模式掌握每个设计模式的UML结构和描绘方式从爱情生活中理解设计模式之美
精彩内容
本书以作者与虚拟女友(小璐)在生活中遇到的各种问题作为主线,引出设计模式的各种功能、用途,以及解决方法,系统介绍了23种设计模式,根据具体的实例形象化、具体化地进行了代码的编写和详细讲解,让那些本来对设计模式不太了解、一知半解、只有概念的读者,了解和掌握常用的设计模式使用场景及使用方式,并掌握每个设计模式的UML结构和描绘方式。本书共23章,包括认识设计模式、单例模式、工厂模式、建造者模式、原型模式、适配器模式、装饰器模式、外观模式、桥接模式、组合模式、享元模式、代理模式、策略模式、命令模式、状态模式、模板方法模式、备忘录模式、中介者模式、观察者模式、迭代器模式、责任链模式、访问者模式、解释器模式。通过以上的知识,让你从模式小白直接升级为模式大神!本书所需源代码,均可通过本书配套下载链接获得。本书适合编程初学者或希望在面向对象编程上有所提高的开发人员阅读。
以下为对购买帮助不大的评价