十几年来,IT 界也发生了翻天覆地的变化,各种开源框架层出不穷,机器学习大兴其道。但是,在面向对象编程中,设计模式的重要性却不曾改变。与以前一样,在大规模的企业系统开发中,Java和C#仍处于主导地位。在这种大规模系统的开发中,设计模式可以帮助我们实现系统结构化,很好地支撑起系统的稳定性和可扩展性。而本书内容经典,时至今日仍然适用,作为设计模式的书,非常适合于设计模式的开发者。
想必大家在编写程序的时候,也曾遇到“咦,好像之前编写过类似的代码”这样的情况。随着开发经验的增加,大家都会在自己的脑海中积累起越来越多的“模式”,然后会将这些“模式”运用于下次开发中。
本书以浅显易懂的语言逐一说明了GoF的23种设计模式。在讲解过程中,不仅搭配了丰富的图片,而且理论结合实例,用Java语言编写代码实现了设计模式的程序,让程序真正地运行起来,并提供了运用模式解决具体问题的练习题和答案。除此以外,本书在必要时还对Java语言的功能进行补充说明,以加深读者对Java的理解。
设计模式是一把双刃剑。正确地使用它可以提高系统的适应性,误用则会反过来降低系统的适应性。下面的学习方法有助于我们尽快地掌握设计模式:
1. 了解设计模式
首先通过阅读图书和文章了解设计模式。除了阅读本书以外,还可以参考本书附录中介绍的许多讲解和讨论设计模式的优秀图书和文章。
2.动手体验设计模式
自已动手编写示例代码,观察代码运行结果。在这个过程中,注意用心去感受代码。
3. 在项目中实践
当认为时机成熟时,可以尝试在项目中运用设计模式。遇到阻力时,可以用书中的知识和自己的理解去说服其他开发人员和项目经理。
4.总结经验教训
误用设计模式并不可怕,可怕的是一-错再错。在每次误用设计模式后都应当总结经验教训,这样才能真正地提高对设计模式的理解。
5. 与其他开发者交流讨论
与其他开发人员,特别是与经验丰富的开发人员交流讨论是快速掌握设计模式的行之有效的方法之一。在讨论候选的几种设计模式到底哪种更好的过程中,时常会出现“一语惊醒梦中人”的情况。
在此衷心希望各位朋友们能够爱上设计模式。
本书结构如下所示,各章基本上与GoF设计模式的章节相对应。但是笔者对设计模式的分类与GoF不同,因此章节划分也不尽相同。
由于篇幅限制小编,小编只在这里给大家展示目录及部分内容,有需要完整文档的程序猿(媛)可以帮忙转发+关注,后台私信【学习】或【资料】获取
在第1部分“适应设计模式”中,我们将学习一些比较容易理解的设计模式,并以此来适应设计模式的概念。
在第1章“Iterator 模式一个遍历” 中,我们将要学习从含有 多个元素的集合中将各个元素逐一取出来的Iterator模式。
在第2章“Adapter模式加个‘适配器’以便于复用”中,我们将要学习Adapter模式,它可以用来连接具有不同接口( API)的类。
在第2部分“交给子类”中,我们将学习与类的继承相关的设计模式。
在第3章"Template Method模式将具体处理交给子类”中,我们将要学习在父类中定义处理框架,在子类中进行具体处理的Template Method模式。
在第4章"Factory Method模式一将 实例的生成交给子类”中,我们将要学习在父类中定义生成接口的处理框架,在子类中进行具体处理的Factory Method模式。
在第3部分“生成实例”中,我们将学习与生成实例相关的设计模式。
在第5章“Singleton模式一 只有一个实例”中,我们将要学习只允许生成一个实例的Singleton模式。
在第6章“Prototype 模式一通过复制生成实例” 中,我们将要学习复制原型接口并生成实例的Prototype 模式。
在第7章“Builder 模式组装 复杂的实例”中,我们将要学习通过各个阶段的处理以组装出复杂实例的Builder模式。
在第8章“Abstract Factory模式一将 关联零件组装成产品”中,我们将要学习像在工厂中将各个零件组装成产品那样生成实例的Abstract Factory模式。
在第4部分“分开考虑”中,我们将学习分开考虑易变得杂乱无章的处理的设计模式。
在第9章“Bridge 模式一将 类的功能层次结构与实现层次结构分离”中,我们将要学习按照功能层次结构与实现层次结构把一个两种扩展(继承)混在一起的程序进行分离,并在它们之间搭建桥梁的Bridge模式。
在第10章“Strategy模式一 整体地替换算法”中,我们将要学习Strategy模式,它可以帮助我们整体地替换算法,使我们可以更加轻松地改善算法。
在第5部分“一致性”中,我们将学习能够让两个看上去不同的对象的操作变得统一,以及在不改变处理方法的前提下增加功能的设计模式。另外,我们还要学习“委托”。
在第11章“Composite模式 容器与内容的一致性”中,我们将要学习让容器和内容具有一致性,从而构建递归结构的Composite模式。
在第12章"Decorator模式装饰边框与被装饰物的一致性”中,我们将要学习让装饰边框与被装饰物具有一致性,并可以任意叠加装饰边框的Decorator 模式。
由于篇幅限制小编,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!不会只有大纲和目录,有需要的程序猿(媛)可以帮忙转发+关注,后台私信【学习】或【资料】获取
在第6部分“访问数据结构”中,我们将学习能够漫步数据结构的设计模式。
在第13章“Visitor模式访问数据结构并处理数据”中,我们将要学习在访问数据结构的同时重复套用相同操作的Visitor模式。
在第14章“Chain of Responsibility模式一推卸责任” 中,我们将要学习可以处理连接在一起的多个对象中某个地方的Chain of Responsibility模式。
在第7部分“简单化”中,我们将学习可以让类关系简单的设计模式。
在第15章"Facade模式一 简单窗口”中,我们将要学习Facade模式,该模式并不是单独地控制那些错综复杂地关联在一起的多个类, 而是通过配置一个窗 口类来改善系统整体的可操作性。
在第16章“Mediator模式 只有一个仲裁者” 中,我们将要学习可以不与多个复杂的类打交道,而是准备一个窗口,然后通过与这个窗口打交道来简化程序的Mediator模式。
在第8部分“管理状态”中,我们将学习与状态相关的设计模式。
在第17章“Observer模式发送状态变化通知”中,我们将要学习将状态发生变化的类和发送状态变化通知的类分开实现的Observer模式。
在第18章“Memento 模式保存对象状态" 中,我们将要 学习可以保存对象现在的状态,并可以根据情况撤销操作,将对象恢复到以前状态的Memento模式。
在第19章“State模式用类表示状态”中,我们将要学习用类来表现状态,以减少switch语句的State模式。
在第9部分“避免浪费”中,我们将学习可以避免浪费、提高处理效率的设计模式。
在第20章“Flyweight模式共享对象,避免浪费”中,我们将要学习当多个地方有重复对象时,通过共享对象来避免浪费的Flyweight模式。
在第21 章“Proxy 模式只在必要时生成实例” 中,我们将要 学习除非必须“本人”处理,否则就只使用代理类来负责处理的Proxy模式。
在第10部分“用类来表现”中,我们将学习用类来表现特殊东西的设计模式。
在第22章“Command模式命令也是类"中,我们将要学习用类来表现请求和命令的Command模式。
在第23章“Interpreter 模式语法规则也是类” 中,我们将要学习用类来表现语法规则的Interpreter模式。
由于篇幅限制小编,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!不会只有大纲和目录,有需要的程序猿(媛)可以帮忙转发+关注,后台私信【学习】或【资料】获取
网友评论