群发通知数据结构设计_一本关于设计模式的经典之作,如果你没看过,那就太遗憾了...

69adac4365e7a4c88fc4ec1872caeee8.png

前言

想必大家在编写程序的时候,也曾遇到“咦,好像之前编写过类似的代码”这样的情况。随着开发经验的增加,大家都会在自己的脑海中积累起越来越多的“模式”, 然后会将这些“模式”运用于下次开发中。

当多个模块组合在一起工作时, 接口是非常重要的。其实,这条原则不仅仅适用于计算机,也适用于人。当多位开发人员一起工作的时候,“人”这个接口也非常重要,而这个接口的基础就是“语言”。特别是脱离具体代码、只讨论程序的大致结构时,语言和图示就显得尤其重要。比如,另外一位开发人员提出的改进方案与我的方案究竟是否相同?是不是大框架相同而细节不同呢?如果有无限的时间与耐力,这些问题都是可以通过反复讨论解答出来的。但是,如果借助设计模式的术语来表达想法,我们就可以更加轻松地比较两人的观点,进而使讨论进行得更加顺利。

设计模式为开发人员提供了有益且丰富的词汇,让开发人员可以更容易地理解对方所要表达的意思。

本书的特点

  • 用Java语言编写可实际运行的程序

我们会编写Java程序代码来实现GoF的23种设计模式。为了方便大家通读这些代码,所有的代码都只有100行左右,非常精简。而且,所有的代码中都没有“以下代码省略”的部分,且都经过笔者自己编译并运行过。

  • 模式名称的讲解

设计模式的名称原本不是汉语,而是英语。开发人员如果不精通英语,就无法由设计模式的名称直接联想到它的作用。因此,本书还会讲解各设计模式的名称是什么意思,以及怎样用汉语表达。这样-来,那些不擅长英语的开发人员也可以很轻松地掌握设计模式。

  • 模式之间的关联与练习题

设计模式不需要死记硬背。要想掌握模式,必须要多练习,比如试着在阅读程序时识别出模式,在编写程序时运用模式。因此,必须了解模式之间的关联,并练习运用模式解决具体问题。本书为大家设计了用于学习设计模式的练习题和答案。

  • Java语言的相关信息

本书不仅会讲解设计模式,还会向读者展示一- 些信息以帮助大家深入理解Java。带有[Java )符号的内容表示这部分是和Java语言相关的信息。

  • 模式插图

如果只阅读文字讲解内容,很难掌握这些模式。在本书中,我们在每章的首页中都放了一张图片来直观地展示所要学习的模式,这样可以帮助大家更加轻松地掌握模式。

本书内容

需要这份文档完整版的可以转发加关注小编后私信“999”获取免费领取方式

在第1部分“适应设计模式”中,我们将学习一些比较容易理解的设计模式,并以此来适应设计模式的概念

在第1章"Iterator模式一个一个遍历”中,我们将要学习从含有多个元素的集合中将各个元素逐一取出来的Iterator模式。

在第2章“Adapter模式一 加个适配器’以便于复用”中,我们将要学习Adapter模式,它可以用来连接具有不同接口( API )的类。

50750bb8a4e8cf39195dd5a091043e83.png

在第2部分“交给子类”中,我们将学习与类的继承相关的设计模式。

在第3章"Template Method模式一 将具体处理交给子类”中,我们将要学习在父类中定义处理框架,在子类中进行具体处理的Template Method模式。

在第4章“Factory Method模式一 将实例的生成交给子类”中,我们将要学习在父类中定义生成接口的处理框架,在子类中进行具体处理的Factory Method模式。

106a689e1cf4d3a3a500a44aad8ba527.png

在第3部分“生成实例”中,我们将学习与生成实例相关的设计模式。

在第5章“Singleton 模式一只有一 一个实例” 中,我们将要学习只允许生成一个实例的Singleton模式。

在第6 章“Prototype 模式一通过复制生成实例” 中,我们将 要学习复制原型接口并生成实例的Prototype模式。

在第7章“Builder模式一 组装复杂的实例”中,我们将要学习通过各个阶段的处理以组装出复杂实例的Builder模式。

在第8章“Abstract Factory模式一 将关联零件组装成产品”中,我们将要学习像在工厂中将各个零件组装成产品那样生成实例的Abstract Factory模式。

b7ab205840533968b29e30b9bc43bf70.png

在第4部分“分开考虑”中,我们将学习分开考虑易变得杂乱无章的处理的设计模式。

在第9章“Bridge模式一 将类的功能层次结构与实现层次结构分离”中,我们将要学习按照功能层次结构与实现层次结构把-一个两种扩展(继承)混在一-起的程序进行分离,并在它们之间搭建桥梁的Bridge模式。

在第10章“Strategy模式一 整体的替换算法”中,我们将要学习Strategy模式,它可以帮助我们整体地替换算法,使我们可以更加轻松地改善算法。

65e2c61564f1432fe2972582c92b9ae1.png

在第5部分“一致性”中,我们将学习能够让两个看上去不同的对象的操作变得统一,以及在不改变处理方法的前提下增加功能的设计模式。另外,我们还要学习“委托”。

在第11章“Composite模式一 容器与内容的一-致性”中,我们将要学习让容器和内容具有一致性, 从而构建递归结构的Composite 模式。

在第12章“Decorator模式一装饰边框与被装饰物的一致性”中,我们将要学习让装饰边框与被装饰物具有一致性, 并可以任意叠加装饰边框的Decorator模式。

a0e6b3de93e0c7d40775879b40eefbc1.png

在第6部分“访问数据结构”中,我们将学习能够漫步数据结构的设计模式。

在第13章“Visitor 模式一访问数 据结构并处理数据”中,我们将要学习在访问数据结构的同时重复套用相同操作的Visitor 模式。

在第14章“Chain of Responsibility模式一推卸责任” 中,我们将要学习可以处理连接在一起的多个对象中某个地方的Chain of Responsibility模式。

8bc86f0ab13f79646e2ac6a8352c1097.png

在第7部分“简单化”中,我们将学习可以让类关系简单的设计模式。

在第15章"Facade模式一简单窗口” 中,我们将要学习Facade模式,该模式并不是单独地控制那些错综复杂地关联在一起的多个类,而是通过配置一个窗口类来改善系统整体的可操作性。

在第 16章"Mediator 模式一只有一个仲裁者” 中,我们将要学习可以不与多个复杂的类打交道,而是准备一个窗口,然后通过与这个窗口打交道来简化程序的Mediator模式。

b8fc9ef35dbe44bde0db187266767ad6.png

在第8部分“管理状态”中,我们将学习与状态相关的设计模式。

在第17章“Observer模式一 发送状态变化通知”中,我们将要学习将状态发生变化的类和发送状态变化通知的类分开实现的Observer模式。

在第18章“Memento模式一保存对象状态” 中,我们将要学习可以保存对象现在的状态,并可以根据情况撤销操作,将对象恢复到以前状态的Memento模式。

在第19章“State模式一 用类表示状态”中,我们将要学习用类来表现状态,以减少switch语句的State模式。

51150aaec3be4f1dd387285b9ca9636e.png

在第9部分“避免浪费”中,我们将学习可以避免浪费、提高处理效率的设计模式。

在第20章“Flyweight模式一共享对象, 避免浪费”中,我们将要学习当多个地方有重复对象时,通过共享对象来避免浪费的Flyweight模式。

在第21 章“Proxy 模式一直在必要时生成实例” 中,我们将要学习除非必须 “本人”处理,否则就只使用代理类来负责处理的Proxy模式。

6d1cb36e8a78c97b89a215ca5a52990d.png

在第10部分“用类来表现”中,我们将学习用类来表现特殊东西的设计模式。

在第22章“Command模式一命令也是类”中,我们将要学习用类来表现请求和命令的Command模式。

在第23章"Interpreter 模式一语法规则也是类" 中,我们将要学习用类来表现语法规则的Interpreter模式。

981293aec419225991a26a71c3e87aef.png

23种设计模式视频

学习一种东西文档版的怎么也不会比视频来的爽快、透彻的。来吧,安排。

672ae5df4cc24acad12dacdc7f98ea8b.png

需要这份文档完整版和设计模式视频的可以转发本文并且关注小编后私信“999”获取免费领取方式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值