阿里资深架构细说:金三银四面试常见的Java设计模式,附带答案
关于设计模式
模式是从不断重复出现的事件中发现和抽象出的规律,是解决问题形成的经验总结。设计模式作为- -种模式,最早应用于建筑领域,目的是在图纸上以一种结构化、可重用化的方法,获得建筑的基本要素。渐渐地,这种思想在软件领域流行起
来,并获得发展,形成了软件开发的设计模式。软件设计模式被认为是一套被反复使用、多数人知晓、经过分类编目的
代码设计经验的总结。最早的设计模式是由GOF在《Design Patterns:Elements of Reusable Object Oriented Software》一书提出的,这也被称为经典设计模式,共有23个,分为创建型模式、行为型模式、结构型模式三类。使用设计模式的目的是为了提高代码的可重用性、让代码更容易被他人理解、系统更加可靠。
本人免费整理了Java高级资料,涵盖了Java、Redis、MongoDB、MySQL、Zookeeper、Spring Cloud、Dubbo高并发分布式等教程,一共30G,需要自己领取。
传送门:https://mp.weixin.qq.com/s/osB-BOl6W-ZLTSttTkqMPQ。
内容提要
设计模式是一套被重复使用的代码设计经验的总结。本书面向有一定Java语言基础和定编程经验的读者,旨在培养读者良好的设计模式思维方式,加强对面向对象思想的理解。
全书共分12章,首先强调了接口和抽象类在设计模式中的重要性,介绍了反射技术在设计模式中的应用。然后,从常用的23个设计模式中精选10个进行了详细的讲解,包括2个创建型模式.4个行为型模式.4个结构型模式。本书5理论讲解透彻,应用示例深入。设计模式的讲解均从生活中的一类常 见事物的分析引出待讨论的主题,然后深入分析设计模式,最后进行应用探究。应用探究部分所有示例都源自应用项目,内容涉及Java.JSP. JavaScript. Ajax 等实用技术,知识覆盖面广。
本书可供高等院校计算机相关专业本科生和研究生设计模式,软件体系结构等课程使用,对高级程序员、软件工程师、系统架构师等专业研究人员也具有一定的参考价值。
本书内容
本书首先利用两章讲解了用到的预备知识:接口与抽象类,反射。然后从常用的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章接口与抽象类


第2章反射


第3章工厂模式


第4章生成器模式



第5章观察者模式


第6章桥接模式


第7章代理模式


第8章状态模式



第9章访问者模式


第10章 命令模式


第11章装饰器模式


第12章组合模式

