图解设计模式
约 873 字大约 3 分钟
2025-11-27
前言
理解类之间的关系
理解时序图的画法
本书代码均以java的形式呈现
设计模式一 :Iterator模式
类似于C++的迭代器模式
类似于书架放书的代码示例
Iterator模式

都是对抽象的集合和迭代器的扩展。
Adapter模式
适配器模式:利用中间层弥补两层之间差异做一道转换。
Adapter模式也叫包装器模式。。
类适配器模式(使用继承的适配器)
对象适配器模式(使用委托的适配器)

Template Method模式
父类中定义流程处理的框架,在子类中实现。
AbstractDisplay仅有display实现了,其余是抽象接口,其余接口交给了其子类自身实现。
声明抽象就是让子类自身进行实现。
Factory Method
简单工厂模式

继承抽象类,抽象类中写有create函数,有两个抽象类一个工厂抽象类一个产品 抽象类
实例工厂会生成对应的产品也就是产品和工厂是一对一的关系,一个产品对应一个工厂
有三种生成实例的办法: 指定为抽象方法,强制子类实现
采用默认处理,也就是基类设置一个默认函数,是否多态由子类决定
基类的创建方法不创建改为抛出错误,当程序运行到对应位置的时候就会报错
Singleton 模式
单例模式
单例模式的构造函数是虚拟函数不能直接创建,用geinstace方法让其调用,并且声明为静态成员函数
Singleton模式对实例的数量设置了限制。
Prototype模式
1、对象种类繁多,无法将它们整合到一个类中
2、难以根据类生成实例时
3、想解耦框架与生成的实例时
Manager类使用Product接口复制实例,一旦在类中使用到了别的类名,就意味着该类与其他类紧密地耦合在了一起。
java准备了复制实例的clone方法,想要调用clone方法,被复制的类必须实现java.lang.Clonable接口,不论被复制对应是否实现还是某个父类实现接口
要注意clone的浅复制行为,直接有特殊初始化要求的类需要自实现clone()
Builder模式
builder是一个抽象类只声明了方法

builder里面会声明一些创建成员的基本方法的抽象。
主要包括建造者具体建造者和监工等。


