Java

清华名师心血著作:设计模式艺术之道,软件开发人员内功修炼手册

2020-06-15  本文已影响0人  java高级架构师

前言

在过去多年的软件开发和教学推广工作中,我时常能够听到这样的声音:

抽象类和接口到底有什么用?

继承不好吗?为什么有时候不用它来实现功能复用?

能不能在下次增加功能的时候不要修改源代码?每次都改,太麻烦了。

有没有一种方法能够减少类的个数?这么多类,太复杂了。

面向对象软件的可重用性不是很好吗?为什么我还是在不断编写相同的代码?

我学过设计模式,也看了好几本书,但实际开发时我还是不知道怎么运用这些模式?

你是否也曾有过上述疑问或者类似的感慨?如果有的话,那么本书将是你明智的选择。本书将结合大量项目实例来逐个讲解设计模式,讲述如何通过设计模式来解决上述问题,让读者能够快速提升自己的开发功力,真正理解和掌握每-一个设计模式,在软件开发的内功修炼之道上迈出坚实的一步。设计模式是面向对象软件开发的入门功夫,是前人经验的积累,它为构建可维护性和可复用性俱佳的软件而诞生。

本书结构及内容

本书分为4个部分,共26章:

第1部分:基础知识,包含第1章和第2章,主要介绍与设计模式相关的基础知识,包括设计模式概述,UML类图、7个面向对象设计原则等内容,为后续设计模式的学习奠定基础。

第2部分:创建的艺术,包含第3~8章,介绍6种常用的创建型设计模式,分别是单例模式、简单工厂模式、工厂方法模式、抽象工厂模式、原型模式和建造者模式。

第3部分:组合的艺术,包含第9~15章,介绍7种常用的结构性设计模式,分别是适配器模式.桥接模式、组合模式、装饰模式.外观模式.享元模式和代理模式。

第4部分:交互的艺术,包含第16~26章,介绍11种常用的行为型设计模式,分别是职责链模式.命令模式、解释器模式.迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式和访问者模式。

想要获取这份设计模式艺术之道,软件开发人员内功修炼手册的电子版文档,添加微信即可获取哦(msbjy2019)

每章的基本内容如下

第1部分,基础知识

第1章:介绍设计模式的基本概念;

设计模式从何而来

设计模式是什么-

设计模式有什么用

个人观点

第2章:介绍UML类图与面向对象设计原则;

UML概述

类与类的UML图示

类之间的关系

面向对象设计原则概述

单一职责原则

开闭原则

里氏代换原则

依赖倒转原则

接口隔离原则

合成复用原则

迪米特法则

第二部分,创建的艺术一创建型模式

第3章:介绍如何确保系统中一个类只能有一个实例;

单例模式的动

单例模式概述

负载均衡器的设计

饿汉式单例与懒汉式单例的讨论.

一种更好的单例实现方法

单例模式总结

第4章:介绍如何将对象的创建和对象的使用分离;

图表库的设计

简单工厂模式概述

完整解决方案

方案的改进

创建对象与使用对象

简单工厂模式的简化

简单工厂模式总结

第5章:介绍如何通过不同的工厂来创建不同类型的对象;

日志记录器的设计

工厂方法模式概述

完整解决方案

反射与配置文件

重载的工厂方法

工厂方法的隐藏

工厂方法模式总结

第6章:介绍如何设计一个能够创建一系列产品对象的工厂;

界面皮肤库的初始设计

产品等级结构与产品组

抽象工厂模式概述

完整解决方案

开闭原则的倾斜性

抽象工厂模式总结

第7章:介绍如何通过克隆来得到一个一模一样的对象;

大同小异的工作周报

原型模式概述

完整解决方案

带附件的周报

原型管理器的引入和实现

原型模式总结

第8章:介绍如何一步步创建一个包含多个组成部分的复杂对象

游戏角色设计

建造者模式概述

完整解决方案

关于Director的进一步讨论

建造者模式总结

第三部分,组合的艺术一结构型模式

第9章:介绍如何在不修改现有系统的前提下重用没有源码的第三方类库

没有源码的算法库

适配器模式概述

完整解决方案

类适配器模式

双向适配器模式

缺省适配器模式

适配器模式总结

第10章:介绍如何避免在多层继承结构中类的个数出现爆炸式增长

跨平台图像浏览系统.

桥接模式概述

完整解决方案

适配器模式与桥接模式的联用

桥接模式总结

第11章:介绍如何使用面向对象的方式来处理软件系统中的树状结构

设计杀毒软件的框架结构

组合模式概述

完整解决方案

透明组合模式与安全组合模式

Sunny公司组织结构

组合模式总结

第12章:介绍如何不通过继承的方式来扩展类的功能

图形界面构件库的设计

装饰模式概述

完整解决方案

透明装饰模式与半透明装饰模式.

装饰模式注意事项

装饰模式总结

第13章:介绍如何为复杂的系统提供一个统一的人口

文件加密模块的设计

外观模式概述

完整解决方案

抽象外观类的引

外观角色设计补充说明

外观模式总结

第14章:介绍如何实现对象的多次复用以节省系统资源

围棋棋子的设计

享元模式概述

完整解决方案

带外部状态的解决方案

单纯享元模式和复合享元模式

关于享元模式的几点补充

享元模式总结

第15章:介绍如何提供--种间接访问机制来实现对象的远程访问或受限访问

收费商务信息查询系统的设计

完整解决方案

远程代理

虚拟代理

Java动态代理

代理模式总结

第四部,分交互的艺术一行 为型模式

第16章:介绍如何让多个对象都有机会来处理同一个请求

采购单的分级审批.

职责链模式概

完整解决方案

纯与不纯的职责链模式

职责链模式总结

第17章:介绍如何将请求的发送者和请求接收者完全解耦

自定义功能键

命令模式概述

完整解决方案

命令队列的实现

撤销操作的实现

宏命令

命令模式总结

第18章:介绍如何自定义一个简单的语言

机器人控制程

文法规则和抽象语法树

解释器模式概述

完整解决方案.

再谈Context的作用

解释器模式总结

第19章:介绍如何间接遍历一个聚合对象中的元素

销售管理系统中数据的遍历

迭代器模式概述

完整解决方案

使用内部类实现迭代器

JDK内置迭代器

迭代器模式总结

第20章:介绍如何协调多个对象之间复杂的相互调用

客户信息管理窗口的初始设计

中介者模式概述

完整解决方案

中介者与同事类的扩展

中介者模式总结

第21章:介绍如何在软件中实现撤销功能

可悔棋的中国象棋

备忘录模式概述

完整解决方案

实现多次撤销

再谈备忘录的封装

备忘录模式总结

第22章:介绍如何实现对象之间--对多的联动

多人联机对战游戏的设计

观察者模式概述

完整解决方案

JDK对观察者模式的支持

观察者模式与Java事件处理

观察者模式与MVC

观察者模式总结

第23章:介绍如何设计和实现-一个具有多个状态的对象

银行系统中的账户类设计.

状态模式概述

完整解决方案

共享状态

使用环境类实现状态转换.

状态模式总结

第24章:介绍如何在不修改现有代码的前提下更换一种算法

电影票打折方案

战略模式概述

完整解决方案

策略模式的两个典型应用

战略模式总结

第25章:介绍如何为一个复杂算法的某些步骤提供多种实现方式

银行利息计算模块

模板方法模式概述

完整解决方案

钩子方法的使用

模板方法模式总结

第26章:介绍如何操作一个包含多种类型对象的复杂结构

OA系统中员工数据汇总

访问者模式概述

完整解决方案

访问者模式与组合模式联用

访问者模式总结

想要获取这份设计模式艺术之道,软件开发人员内功修炼手册的电子版文档,添加微信即可获取哦(msbjy2019)

上一篇下一篇

猜你喜欢

热点阅读