前言
在过去多年的软件开发和教学推广工作中,我时常能够听到这样的声音:
抽象类和接口到底有什么用?
继承不好吗?为什么有时候不用它来实现功能复用?
能不能在下次增加功能的时候不要修改源代码?每次都改,太麻烦了。
有没有一种方法能够减少类的个数?这么多类,太复杂了。
面向对象软件的可重用性不是很好吗?为什么我还是在不断编写相同的代码?
我学过设计模式,也看了好几本书,但实际开发时我还是不知道怎么运用这些模式?
你是否也曾有过上述疑问或者类似的感慨?如果有的话,那么本书将是你明智的选择。本书将结合大量项目实例来逐个讲解设计模式,讲述如何通过设计模式来解决上述问题,让读者能够快速提升自己的开发功力,真正理解和掌握每-一个设计模式,在软件开发的内功修炼之道上迈出坚实的一步。设计模式是面向对象软件开发的入门功夫,是前人经验的积累,它为构建可维护性和可复用性俱佳的软件而诞生。
本书结构及内容
本书分为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)
网友评论